页面加载后,我将一些元素添加到 DOM 中。我想在点击它们时执行一些操作。我正在使用 jQuery 的委托(delegate),但我不知道当我在函数中时如何获取单击的元素($(this) 在本例中指的是父元素)
<div id="parent">
<div class="child">
<div class="hidden"></div>
</div>
<div class="child">
<div class="hidden"></div>
</div>
</div>
<script>
$('#parent').click('.child', function(){
$(this).find('.child').toggleClass("hidden displayed")
});
</script>
假设我想在单击“子”div 时将内部 div 从“隐藏”切换为“显示”。目前,当我单击第一个“子”div 时,两个“隐藏”div 将被切换,而我只想切换我单击的 div 中的那个。
最佳答案
使用e.target
找出事件源自哪个元素。
$('#parent').on('click', '.child', function(e){
$(e.target).toggleClass("hidden displayed")
});
我还稍微修复了代码 - 您需要使用 .on
来处理委托(delegate)事件。 (巴马尔提到过。)
关于javascript - 使用 jQuery 获取委托(delegate)事件中被点击的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26657058/