我正在创建一个自动提示框,其中有一个建议返回给它,我正在尝试添加/删除类“searchsuggestinnerulhighlight”到单个链接。这是动态返回的ta
<DIV id="searchsuggestinner">
<UL id=searchsuggestinnerul>
<LI>
<A href="#" id="1" class = "hoverme" onMouseDown="searchsuggestSubmit('appalachian trail');">appalachian trail</A>
</LI>
</UL>
</DIV>
这是我的jQuery:
$(".hoverme").live("mouseover mouseout", function(event) {
if ( event.type == "mouseover" ) {
$("#" + mocount).removeClass("searchsuggestinnerulhighlight");
mocount = $(this).attr('id');
$("#" + mocount).addClass("searchsuggestinnerulhighlight");
} else {
$("#" + mocount).removeClass("searchsuggestinnerulhighlight");
}
});
最初我有.css(“背景颜色”......现在我已将其更改为添加类并删除类,但它不起作用。有什么想法吗?
答案 0 :(得分:5)
变化:
$("#" + mocount).add("searchsuggestinnerulhighlight");
要:
$("#" + mocount).addClass("searchsuggestinnerulhighlight");
答案 1 :(得分:3)
mocount = $(this).attr('id');
$("#" + mocount)
这是一个严重狡猾的jQuery!
首先,您不需要attr
来获取id
。您可以使用this.id
获取它。这远远快得多。
其次,您不需要获取id
来获取包含被点击元素的jQuery选择。只需使用$(this)
代替。
最后,正如Gabe所说,使用addClass
而不是add
。总而言之:
$(this).addClass('searchsuggestinnerulhighlight');
另一件事 - 在HTML5之前的HTML中不允许使用以数字开头的ID值。它的行为无法保证。
答案 2 :(得分:0)
我会把它放在评论中,但我不能。实现lonesomeday的更改,但是当他使用$(this).id时,尝试使用this.id,因为'this'应该已经是一个jquery对象。 (我们不想要$($(this))。)