首先,我在这里找不到这个问题,所以我不知道它是否已被回答。
我有一个监听我站点中所有点击的人,然后调用一个函数来检查目标是否有类" wave"。如果是这样,它会显示波浪效果。
我有这个类的tile,它工作正常,除了它们有大图标,如果你点击它们,它就不会将它识别为该类的目标。
我试图把所有的牌都放在一个div里面,但不知怎的,它不会把它识别为这个类的目标(我假设它认为是点击了里面的目标)。
我试图把“真正的'在听众的最后,如果冒泡的方向可以帮助我,但它没有。
有什么想法吗?提前谢谢,抱歉我的无知。
的jsfiddle
<div class="tile-container">
<div class="tile efecteona">
<h3 class="titol-tile">Gràfics</h3>
<i class="fa fa-bar-chart tile-icon "></i>
</div>
</div>
&#34; efecteona&#34;将是&#34; wave&#34;类 https://jsfiddle.net/qtLvef8o/2/
答案 0 :(得分:1)
正如其他答案所指出的那样,target
返回实际点击的元素,在这种情况下是图标而不是带有类的div。
既然你使用jQuery,为什么不使用它的委托语法呢?
$(document).on('click', '.efecteona, button', addOnaEffect);
并在你的手中设置target = this
。
答案 1 :(得分:0)
当你询问e.target时它会得到i元素,而i元素没有你需要的类,也没有标记名按钮。
在您的第console.log(target);
行附近添加此var target = e.target;
,您就会看到我在说什么。
答案 2 :(得分:0)
单击元素时,事件会一直冒泡到文档,而目标始终是初始化它的元素。在您的情况下,您的代码似乎假设target
是一个tile元素,而实际上它也可以是icon元素。
由于您在使用jQuery的问题上进行了标记,因此有一个简单的解决方案。使用jQuery closest方法。
var target = $(e.target).closest('.efecteona, button').get(0);
<强> Code example 强>
答案 3 :(得分:0)
target
错误就是这种情况。
我尝试通过重置目标来解释当它是具有该类的父级时(有点脏,可以优化/更好地编写,但它只是为了明确显示目标问题)