2017-09-15 54 views
0

我创建在JavaScript下面的代码(内file1.jsJavaScript的原型和jQuery选择器

function ABC() { 
    this.property01 = true; 
} 

ABC.prototype.doSomething = function() { 

    if (this.property01 == true) { 
     // Do something 
    } 
} 

再后来在我的项目中一个单独的文件(让我们称之为它file2.js) ,我有以下jQuery:

$(document).ready(function() { 

    var abc = new ABC(); 

    // Some code here 

    abc.doSomething(); 

    // continue with code 
}); 

到目前为止,一切都是正确的。

现在,我想要做的是在doSomething()的原型定义里面file1.js,我想用jQuery。东西沿线

function ABC() { 
    this.property01 = true; 
} 

ABC.prototype.doSomething = function() { 

    if (this.property01 == true) { 

     $('#find-element'). .... // ... Do Something 
    } 
} 

但我不知道如何做到这一点。如果我有一个jQuery 文件准备包装,那么该行var abc = new ABC();包裹内file2.js的file1.js的代码,因为它不再承认在file1.js函数定义将抛出一个错误。

我可以在上面解释的方式在原型中使用jQuery吗?我怎样才能做到这一点?我如何构建我的文件以允许这种情况发生?

+0

有很多在这里失去了信息的(发布MCVE),但最有可能的是它会起作用......你试过了吗? – Amit

+0

为什么在定义课程之前等待文档加载?你应该制作全局变量。 – SLaks

+0

你可以保留每一个东西,只要注意,在DOM准备好之前你没有调用doSomething方法。 – Teemu

回答

1

只要jQuery在file1.jsfile1.js之前已完全加载,这应该工作得很好。如果您按照正确的顺序显式加载它们,则$将在全局范围内可用,而其他文件不应该有识别该对象的问题。事实上,如果您正确加载内容,则甚至不需要文档就绪设置即可访问$

<script src="../jquery.js"></script> 
<script src="../file1.js"></script> 
<script src="../file2.js"></script> 

如果由于某种原因,您遇到的$对象发生冲突,你也可以只用这个词jQuery,让您的来电:jQuery('#find-something')

+1

你说得对。这是加载文件的顺序。 – Greeso