【发布时间】:2013-05-21 10:25:39
【问题描述】:
我有以下代码,但我无法弄清楚为什么会触发 hoverIntent 事件,尽管我在点击时将 selected-food 类分配给了 li 元素。
这是一个 jsfiddle:http://jsfiddle.net/7uPcc/2/
预期行为:单击列表项时,会为其分配 selected-food 类(工作正常),并且在悬停时不显示包含成分的隐藏 div。我正在尝试使用.not() 方法来实现这一点。
实际行为:隐藏的 div 在悬停时显示,尽管悬停的项目分配了 selected-food 类。
HTML
<ul>
<li class="food-name">Food 1
<div class="food-ingredients">
<ul>
<li>Ingredient 1</li>
<li>Ingredient 2</li>
<li>Ingredient 3</li>
</ul>
</div>
</li>
<li class="food-name">Food 2
<div class="food-ingredients">
<ul>
<li>Ingredient 1</li>
<li>Ingredient 2</li>
<li>Ingredient 3</li>
</ul>
</div>
</li>
</ul>
CSS
.food-ingredients {
display: none;
}
.selected-food {
color: red;
}
Javascript
$('.food-name').not('.selected-food').hoverIntent({
over: function() {
$(this).children('.food-ingredients').show();
},
out: function() {
$(this).children('.food-ingredients').hide();
},
timeout: 300
});
$('.food-name').click(function() {
$(this).toggleClass('selected-food');
});
当我在控制台中测试 $('.food-name').not('.selected-food') 选择器时,我得到了预期的结果(即未返回具有 selected-food 类的列表项)
【问题讨论】:
标签: jquery hoverintent