jquery - 尝试阻止Default .on() 除了文档中的输入之外的所有内容

标签 jquery jquery-selectors preventdefault

我有一些这样的代码:

$(document).on("keydown", ":not(input)", function(event) {
    if (event.which === 8) {
        event.preventDefault();
    }
});

除了 :not(input) 选择器之外,一切正常。我无法在任何输入框中退格。

我做错了什么?

最佳答案

我无法准确解释为什么会发生这种情况,这可能是由于事件在 dom 上传播的方式所致,但是,删除委托(delegate)并使用 event.target 检查似乎可行.

http://jsfiddle.net/7KDMn/3/

$(document).on("keydown", function(event) {
    if ( event.which === 8 && !$(event.target).is("input") ) {
        event.preventDefault();
    }
});

关于jquery - 尝试阻止Default .on() 除了文档中的输入之外的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21462580/

相关文章:

jquery - 我无法使用jquery获取css属性的值

jquery - 如果 div 没有包含某个类的 div,请执行某些操作。 jQuery

javascript - 复制和粘贴列表项时如何添加换行符?

javascript - 这个 jquery/javascript 循环的更短替代方案?

jquery - 选择第一级文本元素 '.text()'而不选择子元素

jquery - CSS 选择器和 jQuery eq() 匹配错误的元素

javascript - 在 drop 事件中真的需要调用 preventDefault() 吗?

javascript - 由于错误,动态 jQuery 输入刷新页面

jquery - 单击复选框时更改背景颜色

javascript - Magento 自定义选项 - 清除输入字段问题