我将旧版Joomla中的模板带到Wordpress中,并获得了一些我必须使用的javascript文件,其中主要参考其他功能。所有这些文件都使用jQuery左右和中心,并且默认情况下Wordpress使用noconflict我认为将每个js文件包装成这样简单:
(function($){
....my code...
})(jQuery);
我得到的问题是跨文件调用的函数范围,例如:
(function($){
$(document).ready(function(){
mainmenu();
});
})(jQuery);
(function($){
function mainmenu(){
alert("hello");
}
})(jQuery);
这是我得到错误的问题“未捕获ReferenceError:mainmenu未定义”,我知道引用该函数会很简单,但我看不到它,可能是一个“Doh”时刻。 任何帮助都非常感谢。是的我知道我可以找到并用'jQuery'替换'$',但我只是觉得必须有办法做到这一点?
答案 0 :(得分:2)
这是因为mainmenu
是第二个文件中匿名函数内的闭包函数..所以它在file1中不可用。
一种可能的解决方案是使其成为一个全局函数,以便它可以在全球范围内使用。
(function($){
window.mainmenu = function (){
alert("hello");
}
})(jQuery);