我对JavaScript不是很在行,因为我只是在一年多一点的时间里才把编码作为一种爱好,所以如果这个问题看起来很愚蠢,请原谅我。我也是在StackOverflow上发布这篇文章的新手。
无论如何,我正试图在一个动态创建的元素上放置一个事件侦听器,该元素具有子节点。
示例:
<div class="div">
<div class="div2">
Content in Div2
</div>
<div class="div3">
Content in Div3
</div>
Content in Div
</div>
这将是HTML设置。对于JavaScript (我也在使用jQuery,如果有更好的方法来处理这个问题),我使用以下代码(因为元素是动态生成的):
document.querySelector('body').addEventListener('click',function(e){
if (e.target.className === "div"){
//Run this code
}
});
但是,如果我希望在单击div2
和div3
时运行该代码,怎么办?我知道我可以通过DIVs循环说:
document.querySelector('body').addEventListener('click',function(e){
if (e.target.className === "div" || e.target.parentNode.className === "div"){
//Run this code
}
});
然而,我的实际代码中有很多东西在运行,看起来就像一堆乱七八糟的东西。有什么更好的方法来解决这个问题吗?
我觉得我错过了一些很简单的东西
发布于 2014-03-02 21:19:55
发布于 2014-03-02 21:35:10
如果您希望类" div“的div与其内部的所有内容一起单击,则只需这样做:
$('.div').on('click', function () {
//DO SOMETHING
});
上面的内容会使容器div和里面的所有东西都可以点击。
如果您只希望所有的div都是可点击的,那么您可以这样做:
$('.div div').on('click', function () {
//DO SOMETHING
});
下面是一个要演示的JSFiddle:http://jsfiddle.net/simonlevasseur/82m9Y/
https://stackoverflow.com/questions/22139165
复制相似问题