2012-11-30 59 views
0

我使用JavaScript函數被點擊一個功能時改變頁面。函數內部調用ajax。
由於瀏覽器速度很慢。如果在頁面更改之前點擊按鈕不止一次(AJax div加載頁面實際上未更改),則會爲每次點擊進行ajax調用。
我用下面的方法來防止。但即使它被稱爲很多次。我怎樣才能防止它?重複的JavaScript調用。不能禁用

var isClicked = function() {} 
isClicked.init = function() { 
    this.clicked = false; 
} 

function myAjaxFunction { 
    //some statements 
    if(isClicked.clicked == 'undefined') 
     isClicked.clicked = false; 

    if(isClicked.clicked) 
     return false; 

    isClicked.clicked = true; 
    // my ajax call here 
    isClicked.clicked = false; 
    //some statements 
} 
+0

你設置'isClicked.clicked'回'FALSE'在阿賈克斯成功回調(在'onreadystatechange'處理程序)?在您的縮寫代碼中,您看起來就像立即設置它,在異步Ajax調用完成之前(儘管很難判斷何時不顯示代碼)。另外,爲什麼不只是'var isClicked = false;'然後'if(isClicked)return false'?您不需要將其聲明爲函數並在該函數上設置屬性。 – nnnnnn

回答

2
var isClicked = false; 

function AjaxFunction(){ 

    if(isClicked){ 
     return false; 
    } 

    // Set your variable. 
    isClicked = true; 

    // Do yourAjaxCall and use isClicked = false in the callback of that function. 

} 
+0

非常感謝..它的工作就像一個魅力.. –

+0

沒問題。樂於幫助。 –