【发布时间】:2014-06-06 18:20:05
【问题描述】:
我一直在尝试类似的事情
$(':input').blur(doStuff());
和
$('*').bind('blur', doStuff());
但似乎没有正确触发。最好的方法是什么?
【问题讨论】:
-
$('input, select, button').on('blur', doStuff);...
标签: jquery blur eventhandler
我一直在尝试类似的事情
$(':input').blur(doStuff());
和
$('*').bind('blur', doStuff());
但似乎没有正确触发。最好的方法是什么?
【问题讨论】:
$('input, select, button').on('blur', doStuff);...
标签: jquery blur eventhandler
首先,blur 不会冒泡,但 jQuery 会修复它并使其冒泡,但您仍然可以尝试 focusout,因为它实际上是冒泡的事件。
其次,你调用的是回调函数,而不是引用它,应该是
$('*').on('focusout', doStuff);
第三,这是一个非常糟糕的主意,监听一个在 DOM 中所有元素上冒泡的事件,你可能至少应该只在最顶层监听
$(document).on('focusout', doStuff);
即使这样也不是一个好主意,直接定位元素会更好。
【讨论】:
$('input') 或您需要通过 tagNames 定位的任何内容