我在元素上有 keydown 事件。
$("#element").keydown(function() {
// do stuff!
});
现在我想删除它。
我尝试了 unbind
和 off
但都没有用。
$("#element").unbind("click");
$("#element").off("click");
我需要执行 .on("click", function...)
还是 .bind("click", function...)
而不是 .click
如果使用 unbind
或 off
。如果是这样,这不是我的代码,我不能修改它,所以我需要一个替代方法。
除了“解除绑定(bind)”或“关闭”之外,还有其他有效的方法吗?
谢谢,非常感谢帮助!!
最佳答案
.off( events [, selector ] [, handler ] ): version added: 1.7
.unbind( eventType [, handler ] ): version added: 1.0
The .on() method attaches event handlers to the currently selected set of elements in the jQuery object. As of jQuery 1.7, the .on() method provides all functionality required for attaching event handlers. For help in converting from older jQuery event methods, see .bind(), .delegate(), and .live(). To remove events bound with .on(), see .off(). To attach an event that runs only once and then removes itself, see .one()
所以,我建议关注jQuery版本,因为bind/unbind用得不多。
在以下代码片段中,您可以看到 .off()工作正常:
$( 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>
关于javascript - 从 jquery 元素中删除 keydown 事件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38797697/