结构化功能.可以't在现有代码中添加if语句

structuring functions. Can't add if statement within the existing code

本文关键字:代码 添加 语句 if 可以 功能 结构化      更新时间:2023-09-26

我对执行几行以上的函数没有太多经验,我已经很难处理这一行了,因为如果我尝试这样做,它会在代码上显示错误:

这是jquery:

 $("#mainNavigation li").hover(function() {
        $submenu = $(this).toggleClass("activeNav").find(".subMainNavigation").html();
        $("#displaySubmenu").html($submenu);
    }, function() {
        $submenu = $(this).find(".subMainNavigation");
        $("#displaySubmenu").css("display", "none");
    });
    $('#mainNavigation').mouseover(function(){
        $('#displaySubmenu').show();
        $('#mainContent').addClass('curtainBackground');
    });
    $('.wrapperWh').mouseleave(function(){
         $('#mainContent').removeClass('curtainBackground');
    });

我试图实现的是,如果悬停#mainNavigation li,它会将类activeNav添加到

  • 中,如果有一个子mainNavigation类,那么我想显示#displaySubmenu。但我正在努力做到如果存在,不管我把它放在哪里,这都是错误的。

    此外,我认为我可以实现与悬停到鼠标悬停相同的效果,但如果我将代码添加到鼠标悬停,那就行不通了!!但我的主要问题。。。。。如果它找到一个子MainNavigation类,就放if语句。。。

    这是一把小提琴,看起来有点螃蟹。。。但在我的浏览器中看起来不错。。。。http://jsfiddle.net/5egzkgfm/

    我会做:

    $("#mainNavigation li").hover(function() {
        $submenu = $(this).toggleClass("activeNav");
        if(find(".subMainNavigation").html()) {
        $("#displaySubmenu").html($submenu);
    }
    }, function() {
        $submenu = $(this).find(".subMainNavigation");
        $("#displaySubmenu").css("display", "none");
    });
    $('#mainNavigation').mouseover(function(){
        $('#displaySubmenu').show();
        $('#mainContent').addClass('curtainBackground');
    });
    $('.wrapperWh').mouseleave(function(){
         $('#mainContent').removeClass('curtainBackground');
    });
    

    但它什么也不显示。。。

    谢谢:)

  • 您的if语句不起作用,因为您在其中调用的find函数不存在。Find是一个jQuery对象函数;您必须在jQuery对象上调用它,例如$(this)。类似这样的错误将出现在控制台中。访问Chrome和Firefox中的控制台:

    https://developers.google.com/web/tools/chrome-devtools/debug/console/console-uihttps://developer.mozilla.org/en-US/docs/Tools/Web_Console?redirectlocale=en-美国&重定向段塞=使用_Web_Console

    有效if语句:

        var subMenu = $(this).find(".subMainNavigation");
        if(subMenu.length) {
            $("#displaySubmenu").html(subMenu.html());
        }
    

    用于添加activeNav代码的代码无法正常工作。当用户开始在菜单项上悬停时,您将切换activeNav类,但当用户停止在菜单项上方悬停时,不会删除该类。

    鼠标悬停的行为与悬停略有不同,请参阅此处:何时选择鼠标悬停()和悬停()函数