我发现很多人有类似的错误但没有一个是由$('this')引起的。我做了一个教程并且它工作正常,现在我正在尝试自己做一个,并且当得到这个被调用时,我得到了e未定义的错误。
我真的不知道要问什么问题,我只是难倒。
如果我搞砸了这个代码块,请原谅我。
$(function () {
var nav = $('#nav'); //capture navigation call
nav.children('li').addClass('navList'); //groups children (not grandchildren) and applies a class for easier use later
$('.navList').each(function () { //.each is like for loop but with functions
var that = $(this), //captures this call
subMenu = that.find('ul') //groups sub menu items
;
that.bind('mouseenter', function (e) {
//console.log("that");
subMenu.show().css();
})
.bind('mouseleave', function (e) {
subMenu.hide();
});
});
});
HTML-因为它是学校而不是整件事,我不确定他们对此的看法。但这是相关部分。
<ul id="nav" class="cf">
<li><a href="/">home</a></li>
<li><a href="/">tutorials</a>
<ul>
<li><a href="#">JavaScript</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">AJAX</a></li>
</ul>
</li>
<li><a href="/">screencasts</a>
<ul>
<li><a href="#">JavaScript</a></li>
<li><a href="#">jQuery</a></li>
<li><a href="#">AJAX</a></li>
</ul>
</li>
<li><a href="/">projects</a></li>
</ul>
答案 0 :(得分:3)
subMenu.show().css();
导致问题。这里不需要调用css()。
它应该是
that.bind('mouseenter', function (e) {
//console.log("that");
subMenu.show();
})
.bind('mouseleave', function (e) {
subMenu.hide();
});
的工作演示