簡體   English   中英

為什么在我的腳本中多次觸發click事件?

[英]Why is the click event triggered multiple times in my script?

我創建了一個包含點擊事件的搜索按鈕。 當我第一次點擊它時,它會按預期觸發一次。 當我第二次點擊它時會觸發兩次,當我再次點擊它時會觸發多次......任何想法為什么會發生這種情況?

這是點擊事件的代碼:

$("#search_top_form").delegate("#search_button","click",function(e) {   
            wrapperConsole('click search');
                alert("event trigger");                                    
            submitSearchForm();

        }); 

我猜你正在做這樣的事情http://jsfiddle.net/3756r/意味着從submitSearchForm()調用這個委托。

我在這里看到的另一個潛在問題是,如果您使用的是實際表單,而按鈕是提交按鈕,則必須將事件傳遞給click函數並調用event.preventDefault(),以便表單不會提交

在委托之前,添加這個undelegate(“#search_button”,“click”)。delagate ......

$("#search_top_form").undelegate("#search_button","click").delegate("#search_button","click",function(e) {   
            wrapperConsole('click search');
                alert("event trigger");                                    
            submitSearchForm();

        });

我想你會在每次點擊時重新加載這個腳本部分。 這意味着委托適用於每個負載並導致觸發這么多次。

你可以試試

$( “#search_top_form”)undelegate(...)代表(..)。

我不是jquery的專家試試這個

$("#search_button").click(function(){ 
            wrapperConsole('click search');
                alert("event trigger");                                    
            submitSearchForm();
        }); 

為什么你不使用這樣的東西,為什么你使用委托?

$('#target').click(function() {
  alert('Handler for .click() called.');
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM