当我想从提交按钮中删除点击处理程序时,我使用
$(#submitBtn).off();//works fine
但是,当我想恢复到之前的阶段时,.on()
不起作用。
if(flag){
$(#submitBtn).off();//works fine
$.ajax({
type: 'POST',
url: 'someservice.php',
data: {email:email,name:name,text:text},
success: function (data) {
$('#submitBtn').on();//does not work
});//ajax end
}
.off()
不带参数地调用。off()将删除附加到元素上的所有处理程序。可以通过提供事件名称、名称空间、选择器或处理程序函数名称的组合来删除元素上的特定事件处理程序。
。()
将一个或多个事件的事件处理程序函数附加到所选元素。它必须有参数-
.on( events [, selector ] [, data ], handler )
代替绑定和解除绑定,我建议您使用按钮禁用逻辑:.prop('disabled')
$('#submitBtn').prop('disabled',true) //disable
$('#submitBtn').prop('disabled',false) //enable
注意: ID选择器写成$('#submitBtn')
而不是$(#submitBtn)
您正在删除事件,所以当您调用on()
时,您需要指定哪个事件,因为它不会知道它。
$('#submitBtn').on('click', someFn);
您还可以禁用按钮以防止多次提交,然后删除ajax成功处理程序中的禁用属性