[英]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.