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

时间:2012-08-08 13:27:24

标签: jquery button webkit tags

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

不会发生此问题

FIDDLE

有人可以解释这种差异吗?它是一个bug还是jQuery的一个特性?

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

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

2 个答案:

答案 0 :(得分:1)

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

例如,document选择click事件,解析选择器以测试它应该应用于哪个,然后执行该函数。在第二种情况下,在绑定click事件之前首先解析选择器。

答案 1 :(得分:0)

这一定是JQuery 1.7.1的一个错误。如果你移动到1.7.2或1.8,它就会消失。