点击一个孩子不会触发父:在IE工作状态(Clicking a child doesn't t

2019-06-24 19:34发布

我发现在IE 8-10刺激性的错误,防止被触发父母的活动状态。 看来,如果父元素的孩子是点击事件的目标父元素的激活状态不会被触发。

这是一个工作示例 。 如果你点击里面的文本<li>元素不会改变颜色。 如果您单击内部<li>比其他任何地方<p>子元素会变成蓝色。

这是一个问题,因为它几乎呈现CSS:active伪状态IE无用的,如果该元素有任何孩子。

有没有人遇到过这个问题,甚至更好的找到一个解决方法呢?

Answer 1:

这里有一个简单的解决方法:添加CSS规则的段落。

工作实例

CSS

ul { list-style: none; }
li { height: 50px; margin-bottom: 4px; background: red; }
li:active { background: blue; }
p:active { background: blue; height: 100%;}


Answer 2:

你可以添加对另一个CSS选择<p>标记,以便您

li:active { background: blue; }

会变成

li:active, li p:active { background: blue; }


Answer 3:

我建议当你点击一个子元素,执行父的活动状态,你会使用JavaScript或jQuery的为。



Answer 4:

我在IE11在这个偶然。 我在写使用这种方法的建议一拖N -下降的造型逻辑马丁 。

在我来说,我有一个排td电池元件和使用:activetr做这项工作的其他浏览器。 对于IE,我已经添加了一个CSS规则靶向细胞( tr.myRowClass > td:active )和改良的期间执行我的自定义JS逻辑如果条件mousemove细胞的事件处理程序:

 if (style.getPropertyValue('cursor') == 'auto' || document.querySelectorAll(":active").length > 0) {

剩下的任务是找到目标元素: 确定鼠标指针的顶部在Javascript哪个元素



文章来源: Clicking a child doesn't trigger the parent's :active state in IE