我會使用對象文本換行重複的代碼,並設置時,它被稱爲一次布爾,所以它不會被再次運行:
$(document).ready(function(){
DuplicateHelper.SomeMethod1();
});
$(document).ready(function(){
DuplicateHelper.SomeMethod1();
});
$(document).ready(function(){
DuplicateHelper.SomeMethod1();
});
var DuplicateHelper = {
HasMethod1Run: false,
SomeMethod1: function() {
if (!this.HasMethod1Run) {
// do logic
this.HasMethod1Run = true;
}
}
}
編輯
你不」如果您要動態生成代碼,則必須使用對象字面值,但您可以使用與布爾值相同的原則:
var runCode = true;
$(document).ready(function(){
if (runCode) {
DuplicateHelper.SomeMethod1();
runCode = false;
}
});
$(document).ready(function(){
if (runCode) {
DuplicateHelper.SomeMethod1();
runCode = false;
}
});
$(document).ready(function(){
if (runCode) {
DuplicateHelper.SomeMethod1();
runCode = false;
}
});
但是,我同意netbrain這種情況表明您的解決方案體系結構中存在其他問題。
爲什麼你在第一個地方有重複的代碼?真的有必要嗎?而不是想出一個解決方案來有效地去除對重複代碼的調用,那麼去問題的根源並刪除重複的代碼不是更好嗎? – netbrain 2011-05-18 08:13:29
@netbrain好主意!我向其他人介紹了你的啓發性評論,他們正在忙着調查。至於還在努力回答這個具體問題的可憐的靈魂,他仍在挖! – zaf 2011-05-18 08:27:05
讓您的代碼在每個圖層的後端和前端保持乾爽。在我看來,你在幾個頁面片段中有相同的JavaScript代碼,並且當頁面片段被組裝到一個單獨的html頁面時,你會得到你現在正在經歷的結果。這是一個正確的假設嗎? – netbrain 2011-05-18 09:51:34