$(this)导致e未定义错误

时间:2013-12-05 08:22:27

标签: jquery

我发现很多人有类似的错误但没有一个是由$('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>

1 个答案:

答案 0 :(得分:3)

subMenu.show().css();导致问题。这里不需要调用css()。 它应该是

        that.bind('mouseenter', function (e) {
            //console.log("that");
            subMenu.show();

        })
        .bind('mouseleave', function (e) {
            subMenu.hide();
        });

http://jsfiddle.net/TsdRF/1/

的工作演示