Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除特定事件_Javascript_Jquery_Web - Fatal编程技术网

Javascript 删除特定事件

Javascript 删除特定事件,javascript,jquery,web,Javascript,Jquery,Web,假设我有一个组件,inputType=“text”,id=“cmp” 在js文件中 $("input[type='text']").bind('keypress', function(e) { //Case 1 }); 在我的jsp文件中 $("#cmp").keypress(function() { //Case 2 }); 现在我只需要删除一个按键事件。 是否可以删除从js文件注册的id=“cmp”的按键事件。 但我们不应该删除从jsp文件中注册的事件 注: 根据我的要求,我无法更改

假设我有一个组件,inputType=“text”,id=“cmp”

在js文件中

$("input[type='text']").bind('keypress', function(e) {
//Case 1
});
在我的jsp文件中

$("#cmp").keypress(function() {
  //Case 2
});
现在我只需要删除一个按键事件。 是否可以删除从js文件注册的id=“cmp”的按键事件。 但我们不应该删除从jsp文件中注册的事件

注:
根据我的要求,我无法更改.js文件。

您可以使用jquery方法的
关闭
来删除事件

off()方法删除附加了.on()的事件处理程序。 请参阅该页上有关委派和直接绑定事件的讨论 了解更多信息。可以在上删除特定的事件处理程序 通过提供事件名称、名称空间、, 选择器或处理程序函数名。多重过滤时 如果给定参数,则提供的所有参数必须与 要删除的事件处理程序

使用

关闭:删除事件处理程序


您可能希望使用or(jQuery 1.7+)之一,具体取决于事件最初的附加方式以及您使用的jQuery版本

// Prior to jQuery 1.7
$("#cmp").unbind("keypress");

// jQuery 1.7+
$("#cmp").off("keypress");
如果可以修改绑定事件处理程序的原始位置,则还可以使用仅删除特定命名的事件

// Original binding
$("#cmp").on("keypress.someName", function() {
  ...
});

// Unbinding
$("#cmp").off("keypress.someName");

// Prior to jQuery 1.7
$("#cmp").unbind("keypress");

// jQuery 1.7+
$("#cmp").off("keypress");
// Original binding
$("#cmp").on("keypress.someName", function() {
  ...
});

// Unbinding
$("#cmp").off("keypress.someName");