jquery - 即使按钮被禁用,<button> 内的标签也可点击 - 仅限 Webkit

标签 jquery button webkit tags

这是一个 fiddle 来证明我的观点。当我使用 $(document).on("click"....) 时,我仍然可以单击禁用按钮内的标签。 $("button").click(..

不会出现此行为

FIDDLE

有人可以解释一下这种差异吗?这是一个错误,还是 jQuery 的一个功能?

编辑:我想出的解决方法:

$(document).on("click", "button > *", function() {
    if ( $(this).parent().is(":disabled") )
    {    
        return false;
    }
});

最佳答案

我认为此行为是由您应用事件的元素引起的。在第一个示例中,您将事件绑定(bind)到文档。在第二个示例中,您将事件绑定(bind)到按钮。这纯粹是猜测,因为我没有查看 jQuery 源代码来实际了解使用 $().on() 时执行的内容,但我认为选择器在事件触发后已解析.

例如,document 获取点击事件,解析选择器以测试它应该应用于哪个,然后执行该函数。第二种情况是先解析选择器,然后再绑定(bind)点击事件。

关于jquery - 即使按钮被禁用,<button> 内的标签也可点击 - 仅限 Webkit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11865589/

相关文章:

jquery - Rails 3 - ajax 形式 ajax :success event not being called

button - 如何正确设置具有多个重定向的退出/紧急按钮

java - 单击“保存”按钮时,editText 中的值不会更改

javascript - 点击下个月后 jQuery Datepicker 打开两次(使用 2 Datepickers)

html - webkit 表格列的动态宽度

javascript - 隐藏覆盖按钮延迟

javascript - 如何定义一个函数来修改 Ajax 请求上提交到服务器的数据

javascript - 使用 javascript onClick 启动/停止声音

iphone - iPhone 和 iPad 上的 Safari 在触摸时提供颜色反馈,我想阻止这个

android - 是否有任何 Android 浏览器引用/文档?