我在元素上有keydown事件。
$("#element").keydown(function() {
// do stuff!
});
Run Code Online (Sandbox Code Playgroud)
现在我要删除它。
我尝试过unbind,off但都没有工作。
$("#element").unbind("click");
$("#element").off("click");
Run Code Online (Sandbox Code Playgroud)
我是否需要做.on("click", function...)或.bind("click", function...)代替,.click如果使用unbind或off。如果是这样,那么这不是我的代码,并且不允许我对其进行修改,因此我需要一种替代方法。
除了“解除绑定”或“关闭”以外,还有其他可行的方法吗?
谢谢,非常感谢帮助!!
.off(events [,选择器] [,处理程序]):添加的版本:1.7
.unbind(eventType [,handler]):添加的版本:1.0
.on()方法将事件处理程序附加到jQuery对象中当前选定的元素集。从jQuery 1.7开始,.on()方法提供了附加事件处理程序所需的所有功能。有关从较旧的jQuery事件方法转换的帮助,请参见.bind()、. delegate()和.live()。要删除与.on()绑定的事件,请参见.off()。要附加仅运行一次然后删除的事件,请参见.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');
});
});
});Run Code Online (Sandbox Code Playgroud)
<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>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4099 次 |
| 最近记录: |