删除特定事件

时间:2013-03-11 05:43:44

标签: 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文件注册的事件。

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

3 个答案:

答案 0 :(得分:0)

您可以使用off的jquery方法删除事件Jquery OFf

  

off()方法删除用.on()附加的事件处理程序。   请参阅该页面上委托和直接绑定事件的讨论   欲获得更多信息。可以删除特定的事件处理程序   通过提供事件名称,命名空间,   选择器或处理函数名称。多次过滤时   给出了参数,提供的所有参数必须匹配   要删除的事件处理程序。

$('#cmp').off('keypress');

答案 1 :(得分:0)

使用off()

  

off:删除事件处理程序。

$('#cmp').off('keypress');

答案 2 :(得分:0)

您需要使用.unbind().off() jQuery 1.7 + ),具体取决于事件最初的附加方式以及您使用的jQuery版本。< / p>

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

// jQuery 1.7+
$("#cmp").off("keypress");

如果您可以修改绑定事件处理程序的原始位置,您也可以使用event namespaces仅删除特定命名的事件。

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

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

<强> EXAMPLE