2

假设我有一个组件 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 文件。

4

3 回答 3

0

您将需要使用.unbind()或.off( ) ( 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");

例子

于 2013-03-11T07:42:45.357 回答
0

您可以使用offjquery 方法来删​​除事件Jquery OFF

off() 方法删除使用 .on() 附加的事件处理程序。有关更多信息,请参阅该页面上对委托和直接绑定事件的讨论。通过提供事件名称、命名空间、选择器或处理函数名称的组合,可以在元素上删除特定的事件处理程序。当给定多个过滤参数时,提供的所有参数必须匹配才能删除事件处理程序。

$('#cmp').off('keypress');
于 2013-03-11T05:44:42.837 回答
0

使用关闭()

off:删除事件处理程序。

$('#cmp').off('keypress');
于 2013-03-11T05:45:10.837 回答