Javascript 模态窗口例程每次单击都会执行更多时间
Javascript modal window routine executes more time with each click
所以我有一个模态对话框窗口,您可以将函数传递到其中。
function dialog(message, yesCallback, noCallback) {
$('#modal_dialog div.title').html(message);
var dialog = $('#modal_dialog');
dialog.show();
$('#btnYes').click(function() {
yesCallback();
setTimeout(function(){dialog.hide();},3000);
});
$('#btnNo').click(function() {
noCallback();
setTimeout(function(){dialog.hide();},3000);
});
}
当我使用以下方法将函数传入它时:
$(document).on('tap','.rsvp',function(event){
console.log('rsvp');
value = $(this).parent().find('.storyid').text();
dialog($(this).parent().find('H4').text(),function(){doingComing(value,'yes');},function(){doingComing(value,'no');});
});
它第一次找到就有效。开火一次...当我再次单击 .rsvp 类,然后单击"是"或"否"按钮时,它会触发两次。
然后三次
然后四次。
我不确定为什么会发生这种情况。
任何帮助表示赞赏。
每次调用 dialog
方法时都会绑定 click 事件。因为jQuery允许将多个相同类型的事件附加到一个元素。
的一种方法是在调用 dialog
方法时绑定和取消绑定事件。这更像是一种黑客方法,因为持续绑定和取消绑定被认为是一种反模式。
第二种方法是将点击事件移动到 dialog
方法之外,并找到一种区分回调的方法。
相关文章:
- 如何优化这个jquery循环的执行时间
- 不确定react.js的异步执行时间
- 如何在boomrang页面加载时间中添加ajax执行时间
- 执行时间,AMPScript/JavaScript
- 测量JavaScript函数的内存使用情况、执行时间和性能
- JavaScript代码执行时间
- 在执行时间循环中使用继续
- for 循环元素的执行时间比内部 AJAX 调用可以响应的要快
- JavaScript 脚本执行时间太长.获取脚本需要太长时间提示
- 工作表的 Google 脚本 - 超出最长执行时间
- Xampp+Php-Websocket最长执行时间错误
- 延长了jquery方法的执行时间
- 如何通过正确切换在最长执行时间结束时给出用户定义的超时消息
- 什么'这是获取Node.js应用程序总执行时间的更好方法
- Javascript的执行时间非常慢——Chrome
- Knockoutjs订阅事件,ko.computed执行时间问题
- JavaScript-表示浏览器控制台中每个命令的执行时间
- Javascript中的执行时间不一致
- Javascript:在线测量代码执行时间
- 如何知道哪个JavaScript函数执行时间最长