javascript - 为什么 slicknav 不使用由变量设置的 ID 来处理我的 jquery 对象?

标签 javascript jquery scope slicknav

我正在尝试在我动态构建的 jquery 对象上激活 slicknav。

这很好用:

(function($){

var mobilemenu={
     slicknavEngage: function(){
         $(mobileMenuIdentifier).slicknav();
     }
}

var rebuildmenu={

    start:function(){
        var $menuParent = //some stuff I need to build menu
            $menuCategories = //more stuff I need for new menu
            $newMenu = $('<div>').attr('id','new-menu'); //my new menu object

            $menuCategories.each(function(i){
                 //build my new menu
            });

        $newMenu.appendTo('body');
        mobilemenu.slicknavEngage();
    }   

}

$(document).ready(rebuildmenu.start);

})(jQuery);

但我希望能够像这样将移动菜单标识符设置为闭包顶部的配置变量,不幸的是它不起作用,但我从许多位置运行了 console.log 并且正确的变量是总是显示,为什么它不能这样工作??这只是脚本的一小部分,因为必须设置许多其他配置变量,所以我希望也能够设置这个。有什么问题吗?

 (function($){

    //global to this closure
    var     mobileMenuIdentifier = '#new-menu';


    var mobilemenu={
         slicknavEngage: function(){
             $(mobileMenuIdentifier).slicknav();
         }
    }

    var rebuildmenu={

        start:function(){
            var $menuParent = //some stuff I need to build menu
                $menuCategories = //more stuff I need for new menu
                $newMenu = $('<div>').attr('id',mobileMenuIdentifier); //my new menu object with the id set by variable - doesn't work!

                $menuCategories.each(function(i){
                     //build my new menu
                });

            $newMenu.appendTo('body');
            mobilemenu.slicknavEngage();
        }   

    }

    $(document).ready(rebuildmenu.start);

    })(jQuery);

最佳答案

mobileMenuIdentifier 包含 CSS 选择器 #new-menu。如果设置 ID,则不希望 # 成为 ID 值的一部分。只需对代码进行最少的更改,您就可以做到

$('<div>').attr('id',mobileMenuIdentifier.substr(1)); // "new-menu", not "#new-menu"

关于javascript - 为什么 slicknav 不使用由变量设置的 ID 来处理我的 jquery 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27432875/

相关文章:

javascript - 通过 .animate() 和 .css() 设置宽度之间的差异

javascript - 使用 javascript 隐藏、加载和显示 div

javascript - React 中的 JSON 对象解析问题

javascript - 自定义 highcharts 工具提示以显示日期时间

scope - 访问 WebComponent 内的顶级函数

javascript - 向 websocket 客户端发送消息时压缩位必须为 0

javascript - 使用正则表达式删除 £ 符号将 URL 重定向到 Paypal Me

javascript - JavaScript 中 [undefined × 2] 和 [undefined, undefined] 之间的区别

PHP MVC 从 View 调用 Controller 函数

JavaScript 条件执行和变量作用域