当我想从提交按钮中删除点击处理程序时,我正在使用
$(#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
}
答案 0 :(得分:1)
<强> .off() 强>
不带参数调用.off()会删除附加到元素的所有处理程序。通过提供事件名称,命名空间,选择器或处理函数名称的组合,可以删除元素上的特定事件处理程序。
<强> .on() 强>
将一个或多个事件的事件处理函数附加到所选元素。它必须有参数 -
.on( events [, selector ] [, data ], handler )
我建议您使用按钮禁用逻辑:.prop('disabled')
$('#submitBtn').prop('disabled',true) //disable
$('#submitBtn').prop('disabled',false) //enable
注意:ID选择器写为$('#submitBtn')
而不是$(#submitBtn)
答案 1 :(得分:0)
您正在删除该活动,因此当您致电on()
时,您需要指定哪个活动,因为它不知道该活动。
$('#submitBtn').on('click', someFn);
您也可以禁用该按钮以阻止多次提交,然后删除ajax成功处理程序中的disabled属性