Jquery如何取消触发函数
我正在创建一个动态表单。 我有一个下拉列表,当用户进行选择时,将查询数据库以查看该项是否需要隐私。 如果没有,则会向表单添加其他字段。 此外,还会触发邮政编码查找ajax函数,但只有在项目不是私有时才会触发。
这一切都很好,直到用户改变主意…
以下是从下拉列表中选择项目时运行的代码的相关部分;
success:function(response){ if(response === '1'){ // do stuff for item that requires privacy // do NOT trigger zip_check function }else if(response === '0'){ // do stuff for item that is public + $('#zip-code').keyup(zip_check); // triggers a function to check zip code } }
这可以按预期工作,直到用户选择非私有项然后改变他们的想法并选择私有项,在这种情况下,即使现在不应该触发zip_check函数仍将运行。 我哪里错了?
我认为你正在寻找off
(在(response===1){}
)中添加:
$('#zip-code').off('keyup', zip_check);
这样您就可以从click事件中删除该函数。 如果您想删除所有事件,请使用
$('#zip-code').off('keyup');
如果您想要关闭所有活动:
$('#zip-code').off();
.off()
是优于.unbind()
方法,而.on()
是.bind()
的首选方法
试试这个:
用于绑定:
$('#zip-code').on('keyup',zip_check);
并解除绑定:
$('#zip-code').off('keyup',zip_check);