在孩子之间切换时,焦点和模糊如何使DOM冒泡?

时间:2014-03-03 20:14:20

标签: javascript events

当在<div>的孩子之间切换焦点时,我想发射一个功能。 (孩子们是<span>,如果这很重要的话。我知道我可以通过将函数绑定到每个子节点的blur事件来处理这个问题,但我可能会创建(并销毁)许多子元素,并且希望避免将函数绑定到孩子们自己。

对于许多事件,例如点击或鼠标悬停,我知道事件将冒泡DOM并在我的父div上触发相同的事件,我可以捕获它并处理它。不过,我不确定模糊和焦点事件会如何冒泡。看起来父母仍然有焦点,因为它的一个孩子有焦点,但javascript是一个奇怪而美丽的生物。

在元素的子元素之间进行更改时,我是否可以依赖模糊/焦点事件冒泡,或者是否有更好的方法来处理孩子之间更改焦点?

1 个答案:

答案 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代替。

http://jsfiddle.net/p6bAL/