从jquery元素中删除keydown事件不起作用
Remove keydown event from jquery element not working
我在元素上有keydown事件。
$("#element").keydown(function() {
// do stuff!
});
现在我想删除它。
我试过unbind
和off
,但都不起作用。
$("#element").unbind("click");
$("#element").off("click");
如果使用unbind
或off
,我是否需要执行.on("click", function...)
或.bind("click", function...)
而不是.click
。如果是这样,这不是我的代码,也不允许我修改它,所以我需要一种替代方法。
除了"取消绑定"或"关闭"之外,还有其他有效的方法吗?
谢谢,非常感谢您的帮助!!
.off(事件[,选择器][,处理程序](:添加的版本:1.7
.unbind(eventType[,handler](:添加的版本:1.0
.on((方法将事件处理程序附加到jQuery对象中当前选定的元素集。从jQuery1.7开始,.on((方法提供了附加事件处理程序所需的所有功能。有关从旧的jQuery事件方法转换的帮助,请参阅.bind((、.delete((和.live((。要删除与.on((绑定的事件,请参阅.of((。若要附加只运行一次的事件,然后再删除它自己,请参阅.one((
因此,我建议注意jQuery版本,因为bind/ubind的使用不多。
在下面的代码段中,您可以看到.of((运行良好:
$( window ).load(function() {
$("#element").keydown(function(e) {
console.log('keydown event');
});
$("#elementOff").click(function() {
// unbind keydown
$("#element").off('keydown');
// attach click
$("#element").off('click').click(function(e) {
console.log('click event');
});
});
});
<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<form>
<input id="element" type="text">
</form>
<button id="elementOff">Unbind Keydown and attach Click</button>
由于.click((方法只是.在(">click",处理程序(上的缩写,因此可以使用进行分离关闭(">点击"(:
$("#element").off("click", function(){
$("#element").hide(); //not working
});
$("#element2").on("click", function() {
$("#element2").hide(); //working
});
因此,如果您有一个.keydown(处理程序(,它是第一个和第二个变体中的.oneydown,处理程序(的快捷方式,第三个变体中为.trigger("keydown"(。
提供的参数必须匹配才能删除事件处理程序。
如果你不想接触现有的脚本,或者它可能会被更改,我建议你只需在html页面中包含一个外部.js脚本即可解除事件绑定:
<script src="your_external_script.js"></script>
具有类似内容:
$(document).ready(function(){
$("#element2").unbind("click");
});
- 阻止浏览器对keydown事件作出反应,但不取消该事件
- IE9-添加和删除DOM元素会破坏父keydown事件
- 在文本区域禁用javascript定义的keydown事件并恢复默认行为
- 在Chrome中模拟keydown事件
- 使用Keydown事件移动对象
- 如何在不干扰网站其他部分的情况下,在画布上捕捉keydown事件
- HTML jQuery 函数在 Keydown 事件上不起作用
- 输入字段未使用 ng-keydown 事件更新
- angularjs的ng keydown事件,按下哪个键的值,然后显示按下的键的值
- background.js正在捕获textbox的keydown事件
- 当我更新HTML时,Keydown事件停止触发
- 为什么我的引导工具提示的标题只会随着jQuery中的keydown事件而更改一次
- 使用AngularJS对超快速keyup和keydown事件调用函数
- d3:拦截特定元素上的keydown事件
- Javascript ActiveElement和Keydown事件侦听器
- 在Firefox中的keydown事件中隐藏元素时焦点顺序错误
- Javascript 'keydown' 事件侦听器不起作用
- 同时在 JavaScript 中使用 keyup/keydown 事件
- 如何使用 Keydown 事件在多种语言/键盘布局中获取正确的字符
- 触发警报的JS(Jquery).keydown事件