菜单应该在悬停时显示子项。这是代码(来自http://docs.jquery.com/Cookbook/Navigation):
<ul id="menu">
<li class="menu">Sub 1
<ul>
<li>test 1</li>
<li>test 2</li>
<li>test 3</li>
<li>test 4</li>
</ul>
</li>
<li class="menu">Sub 2
<ul>
<li>test 1</li>
<li>test 2</li>
<li>test 3</li>
<li>test 4</li>
</ul>
</li>
</ul>
jQuery代码:
$(document).ready(function() {
var toggle = function(direction, display) {
return function() {
var self = this;
var ul = $("ul", this);
if( ul.css("display") == display && !self["block" + direction] ) {
self["block" + direction] = true;
ul["slide" + direction]("slow", function() {
self["block" + direction] = false;
});
}
};
}
$("li.menu").hover(toggle("Down", "none"), toggle("Up", "block"));
$("li.menu ul").hide();
});
上面的切换功能中this
是什么?代码是如何工作的? $("ul", this);
选择了什么?
答案 0 :(得分:2)
“this”指的是jQuery对象$("li.menu")
- 当悬停方法调用将切换函数应用于该对象时。 $("ul", this)
选择ul元素作为第二个参数(“this”)中提供的上下文的子元素,因此它选择嵌套在li.menu元素中的ul元素。希望这使得悬停/切换功能有意义。