$(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:
<a id="fesbtn" class="menubutton" href="#"><img src="img/menu/fes.png" alt="" /></a>
<a id="futbtn" class="menubutton" href="#"><img src="img/menu/fut.png" alt="" /></a>
<a id="reibtn" class="menubutton" href="#"><img src="img/menu/rei.png" alt="" /></a>
...
显然我的语法错了。有什么想法吗?谢谢
答案 0 :(得分:2)
事件缺少作为点击处理程序的参数
答案 1 :(得分:0)
事件未定义
javascript变量也不应该以$
开头答案 2 :(得分:0)
如果您要执行的操作是获取所单击按钮的ID,请将其替换为:
var $id=$(event.target.id.substring(0,2));
用这个:
var $id = this.id.substring(0,2);
使用this
来引用生成事件的对象。比进入你没有定义的事件对象容易得多(这就是你得到JS错误的原因)。
从代码的其余部分来看,您似乎只希望$id
成为字符串。如果是这种情况,那么不要试图从中创建一个jQuery对象。你意识到你在这里只得到一个2个字符的字符串吗?看起来您可能在按钮ID中有三个唯一的字符。