两个.on事件处理程序,只有1个射击

时间:2012-02-20 04:32:16

标签: jquery

我有两个事件处理程序:

$('body').on("blur", ".required", {requiredBlur: true}, checkData);
$('body').on("click", 'input[name="personality"]', {personalityClick:true}, checkData);

.required是众多输入文本字段之一,input[name="personality"]是一系列复选框。因此,当.required输入文本字段处于焦点时,我单击其中一个复选框,模糊事件将触发。但点击事件不会触发复选框。所以实际上,我必须单击一个复选框两次才能选中它。

两者都应该开火还是我错过了什么?

麦克

3 个答案:

答案 0 :(得分:0)

试试这个

$('.required').live('change', {requiredBlur: true}, checkData);
$('input[name="personality"]').live('click', {personalityClick: true}, checkData)

答案 1 :(得分:0)

根据Quirksmode,如果使用用户使用鼠标(source),模糊和焦点对Firefox Mac或Webkit(Chrome / Safari)中的单选按钮和复选框无效。这意味着您将不得不依赖最有可能获得全面覆盖的change事件。

在我的simple demo on中可以正常使用,但你必须确保你的逻辑支持事件发生的事情比你最初设计的要多得多。这里的参考是good explanation of the different way to attach handles using jQuery

答案 2 :(得分:0)

我明白了。我将每个事件处理程序绑定到不同的函数。因此,不是将每个事件绑定到checkData(),而是创建两个单独的函数,每个事件对应一个。