我创建了一个包含点击事件的搜索按钮。当我第一次点击它时,它会按预期触发一次。当我第二次点击它时会触发两次,当我再次点击它时会触发多次......不知道为什么会发生这种情况?
这是点击事件的代码:
$("#search_top_form").delegate("#search_button","click",function(e) {
wrapperConsole('click search');
alert("event trigger");
submitSearchForm();
});
答案 0 :(得分:1)
我猜你正在做这样的事情http://jsfiddle.net/3756r/ 意思是从submitSearchForm()调用此委托。
我在这里看到的另一个潜在问题是,如果您使用的是实际表单而按钮是提交按钮,则必须将事件传递给click函数并调用event.preventDefault()以便表单不会提交
答案 1 :(得分:1)
添加此内容 undelegate( “#search_button”, “点击”)。delagate ......
$("#search_top_form").undelegate("#search_button","click").delegate("#search_button","click",function(e) {
wrapperConsole('click search');
alert("event trigger");
submitSearchForm();
});
答案 2 :(得分:0)
我想你会在每次点击时重新加载这个脚本部分。这意味着委托适用于每个负载,并导致多次触发。
您可以尝试
。$( “#search_top_form”)undelegate(...)代表(..);
答案 3 :(得分:0)
我不是jquery的专家试试这个
$("#search_button").click(function(){
wrapperConsole('click search');
alert("event trigger");
submitSearchForm();
});
答案 4 :(得分:0)
为什么不使用这样的东西,为什么我们使用委托?
$('#target').click(function() {
alert('Handler for .click() called.');
});