在wordpress中用noconflict查询作用域

jQuery scope with noconflict in wordpress

本文关键字:查询 作用域 noconflict 中用 wordpress      更新时间:2023-09-26

我将旧版本Joomla中的一个模板带到Wordpress中,并获得了相当多的javascript文件,这些文件必须与其他文件中的函数一起使用。所有这些文件都使用jQuery从左到右和从中,考虑到Wordpress默认使用noconflict,我认为将每个js文件包装成这样会很简单:

(function($){
....my code...
})(jQuery);

我遇到的问题是跨文件调用的函数的范围,例如:

文件1

(function($){
    $(document).ready(function(){
        mainmenu();
    });
})(jQuery);

文件2

(function($){
    function mainmenu(){
        alert("hello");
    }
})(jQuery);

这是我得到的错误"未获取ReferenceError:主菜单未定义"的问题,我知道引用函数会很简单,但我看不到,可能是"Doh"时刻。任何帮助都将不胜感激。是的,我知道我可以找到"$"并将其替换为"jQuery",但我只是觉得一定有办法做到这一点?

这是因为mainmenu是第二个文件中匿名函数中的闭包函数。。因此它在file1中不可用。

一种可能的解决方案是将其作为全局函数,以便在全局范围内可用。

(function($){
    window.mainmenu = function (){
        alert("hello");
    }
})(jQuery);