由于某种原因,jQuery.off('click')似乎在这里不起作用。在模型中单击"is"按钮时,会弹出另一个模型。我究竟做错了什么?
代码:
$(function(){
//If there are warnings on the page bind alert
if ($('.renewal-warning').length > 0){
(function (){
$('#signRentalContainer').on('click', '.renewal-warning', function(e){
var buttonHandle = this;
//Prevent submission
e.preventDefault();
//Show warning model
$.modal({
content: $('#renewalWarning').html(),
title: "Order Renewal Warning",
buttons: {
'Yes': function(win) { $(buttonHandle).off('click').click(); },
'No': function(win) { win.closeModal(); }
},
maxWidth: 250,
closeButton: false
});
});
})();
}
});
最佳答案
可以肯定的是,您将需要为其提供相同的元素以及相同的选择器。
$('#signRentalContainer').off('click', '.renewal-warning');
在
.on()
处理程序中,this
是单击的'.renewal-warning'
元素,而不是#signRentalContainer
元素。如果这些
'.renewal-warning'
元素中有多个,并且您一次只想禁用一个,则最简单的方法是更改其类,使其不再与选择器匹配。$(this).removeClass('renewal-warning')
.addClass('renewal-warning-disabled');
关于javascript - jQuery.off()没有删除绑定(bind),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8868293/