2017-09-15 33 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