从另一个文件调用一个Java脚本函数

时间:2016-03-27 作者:Trong Lam Phan

在wordpress中,为了使用$而不是jQuery前缀,我在所有js代码周围添加了以下代码:

jQuery(function($) {
    ...
});
它工作正常,但我无法从另一个javascript文件调用对象,以下问题仍然存在:

Slider is not defined
这是我的代码:

file1.js

jQuery(function($) {
    var slider = new Slider();
});    

file2.js

jQuery(function($) {
    function Slider() {
       this.nb_ele = 10;
    }
});
似乎是因为两个js文件的工作空间不同,所以它们无法从另一个js文件调用函数。有什么解决方案吗?

2 个回复
最合适的回答,由SO网友:Adam 整理而成

你的问题是Slider 在其范围外无法访问,如.ready() 虽然你用过速记。该功能需要在全局范围内可用:

文件1。js公司

function Slider() {
   this.nb_ele = 10;
}

jQuery(function($) {
  // ...
});
文件2。js公司

jQuery(function($) {
    var slider = new Slider();
}); 
如果希望滑块保持在文档中就绪,则需要使用函数表达式将函数添加到全局对象:

jQuery(function($) {
    window.Slider= function () {
       this.nb_ele = 10;
    };
});
另请参见:https://stackoverflow.com/questions/1449435/splitting-up-jquery-functions-across-files

SO网友:LoicTheAztec

我也有同样的问题。

您还可以通过以下方式解决此问题:

var $ = jQuery.noConflict();
$(document).ready(function(){

your code in here

});
我的意思是,您还需要在所有javascript文件中使用该技巧var $ = jQuery.noConflict();.

在那之后Dammeul 是对的。

相关推荐

如何使用两个不同文件向jQuery AJAX调用发送php变量

我需要从一个php文件(page.php)向另一个jquery文件(sender.js)中的Ajax调用发送一个私人电子邮件地址。此电子邮件地址必须对用户/或网站不可见,直到用户从wp\\U mail获得自动响应,它必须允许用户答复组织。此电子邮件地址因客户想要联系的组织而异(数百个)。我必须在表单之前从组织获取电子邮件地址,因为它是由javascript生成的。(generated\\u mail.js)发件人。js在页面的标题中被很好地调用。php我在(page.php)中尝试了这段代码——一个组织在