2013-07-31 89 views
1

當我的網站上點擊一個鏈接時,會執行下面的Javascript代碼,如果條件爲真,它會顯示一個警告對話框。當用戶在警報對話框中選擇確定按鈕時,將再次執行該代碼塊。爲什麼這個Javascript代碼執行兩次?

因此,警報關閉,下面的代碼再次執行,警報對話框再次顯示。第二次警報對話框關閉時,在使用警報對話框時選擇確定按鈕。

我怎樣才能防止下面執行兩次的代碼?

$("#my-button").click(function() { 
    var login = someVar; 
    if(!someVar || someVar == ''){ 
     $('.close-reveal-modal').click(); 
     alert(myMessage); 
    } 
}); 
+2

請發佈html或試圖在jsfiddle上重現它 – Saturnix

+0

在此處輸入HTML –

+3

#my-button是否也有類.close-reveal-modal? – evilbhonda

回答

1

檢查,如果你兩次添加單擊處理程序,也許這是什麼原因造成這種行爲。

在這種情況下,刪除其中的一個。

1

從商提供的是非常有限的信息,這是所有我能想到的是去錯了:

$('.close-reveal-modal').click(); 

這段代碼應具有某種功能被執行顯示類似的警報箱。

完善的代碼將是一個完整的答案更有用!

0

從我們在這裏,我猜你的.close-reveal-modal元素是在#my-button(或是相同的html節點)。

當您觸發點擊它時(按$('.close-reveal-modal').click();),它也觸發其父節點的點擊,所以也在#my-button上。

我可能是錯的,我們需要HTML部分(小提琴會很棒)來驗證我的理論。