JQuery – 为什么我得到“目标未定义”

$(document).ready(function() { $(".menubutton").click(function() { var $id=$(event.target.id.substring(0,2)); $(".active").animate({"top": "-=1000px"}, speedanim); $("div#homedrawer div").filter($(".active")).removeClass("active"); $("#"+$id).animate({"top": "+=1000px"}, speedanim); $("#"+$id).addClass("active"); return false; }); }); 

上面的代码生成此错误“目标未定义”引用该行:

 var $id=$(event.target.id.substring(0,2)); 

这是HTML:

    ... 

显然我的语法错了。 有什么想法吗? 谢谢

事件缺少作为您的点击处理程序的参数

事件未定义

javascript变量也不应该以$开头

如果您要执行的操作是获取单击按钮的ID,则替换为:

 var $id=$(event.target.id.substring(0,2)); 

有了这个:

 var $id = this.id.substring(0,2); 

使用this来引用生成事件的对象。 比进入你没有定义的事件对象容易得多(这就是你得到JS错误的原因)。

从其余的代码中,您似乎只想将$id作为字符串。 如果是这种情况,那么不要试图从中创建一个jQuery对象。 你意识到你在这里只得到一个2个字符的字符串吗? 看起来您可能在按钮ID中有三个唯一的字符。