当在<div>
的孩子之间切换焦点时,我想发射一个功能。 (孩子们是<span>
,如果这很重要的话。我知道我可以通过将函数绑定到每个子节点的blur
事件来处理这个问题,但我可能会创建(并销毁)许多子元素,并且希望避免将函数绑定到孩子们自己。
对于许多事件,例如点击或鼠标悬停,我知道事件将冒泡DOM并在我的父div上触发相同的事件,我可以捕获它并处理它。不过,我不确定模糊和焦点事件会如何冒泡。看起来父母仍然有焦点,因为它的一个孩子有焦点,但javascript是一个奇怪而美丽的生物。
在元素的子元素之间进行更改时,我是否可以依赖模糊/焦点事件冒泡,或者是否有更好的方法来处理孩子之间更改焦点?
答案 0 :(得分:0)
冒泡应该可以正常模糊和聚焦
var myElem = document.getElementById("foo");
myElem.addEventListener('blur', function(evt) {
var elem = evt.srcElement || evt.target;
console.log("blur: " + elem.name);
}, true);
myElem.addEventListener('focus', function(evt) {
var elem = evt.srcElement || evt.target;
console.log("focus: " + elem.name);
}, true);
IE使用onfocusin和onfocusout代替。