【问题标题】:jQuery: How can I detect a blur event on all inputsjQuery:如何检测所有输入的模糊事件
【发布时间】:2014-06-06 18:20:05
【问题描述】:

我一直在尝试类似的事情

$(':input').blur(doStuff());

$('*').bind('blur', doStuff());

但似乎没有正确触发。最好的方法是什么?

【问题讨论】:

标签: jquery blur eventhandler


【解决方案1】:

首先,blur 不会冒泡,但 jQuery 会修复它并使其冒泡,但您仍然可以尝试 focusout,因为它实际上是冒泡的事件。

其次,你调用的是回调函数,而不是引用它,应该是

$('*').on('focusout', doStuff);

第三,这是一个非常糟糕的主意,监听一个在 DOM 中所有元素上冒泡的事件,你可能至少应该只在最顶层监听

$(document).on('focusout', doStuff);

即使这样也不是一个好主意,直​​接定位元素会更好。

【讨论】:

  • 哦,谢谢。我的眼睛很模糊。我需要针对用户可以更改的所有输入。有没有比只做 (:input) 更好的方法?
  • 给这些元素一个类,并以该类为目标,这比伪选择器要好得多。
  • 如果类无论如何都会出现在每个输入上,会有什么不同吗?只是性能更好?
  • 不,如果该类将出现在每个输入上,您最好只定位 $('input') 或您需要通过 tagNames 定位的任何内容
猜你喜欢
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-21
  • 1970-01-01
  • 1970-01-01
  • 2015-03-20
  • 1970-01-01
相关资源
最近更新 更多