这里真的很困惑。我只是想在一个悬停的目标上做addClass('test')
...我的jQuery看起来像这样:
//#nav-main dropdown effects
$('#nav-main ul li').hover(function () {
$('#nav-main ul li').addClass('test');
$(this).find('.dropdown').stop(true,true).slideToggle('slow');
$('#nav-main ul li').removeClass("test");
});
然而,返回的是HTML:
<li id="menu-events">
到此:
<li id="menu-events" class="">
任何想法为什么?
答案 0 :(得分:4)
您在同一个函数中添加和删除该类。 jQuery不会删除class属性,即使是空的。看来你错过了悬停的其他回调函数 - 你是否想要在推出时删除该类?你似乎想要更像这样的东西:
//#nav-main dropdown effects
$('#nav-main ul li').hover(function () { // onRollOver
$('#nav-main ul li').addClass('test');
$(this).find('.dropdown').stop(true,true).slideDown('slow');
}, function() { // onRollOut
$('#nav-main ul li').removeClass("test");
$(this).find('.dropdown').stop(true,true).slideUp('slow');
});
答案 1 :(得分:1)
在Landons代码的基础上,您可以使用this
进一步简化它,并避免一遍又一遍地运行相同的选择器:
//#nav-main dropdown effects
$('#nav-main ul li').hover(function () { // onRollOver
$(this).addClass('test').find('.dropdown').stop(true,true).slideDown('slow');
}, function() { // onRollOut
$(this).removeClass("test").find('.dropdown').stop(true,true).slideUp('slow');
});
答案 2 :(得分:0)
你正在添加一个类并删除该类..你期望发生什么?你期望jquery删除空类属性??
您可以运行以下命令删除所有空类属性:
$('*[class=""]').removeAttr('class');