多选择器冗余

redundancy with multiple selector

本文关键字:冗余 选择器      更新时间:2024-03-04

我正面临jQuery多选的冗余问题

这是我的代码:

<div id="1">
    <div id="2">
        <div id="3">
        </div>
    </div>
</div>

<script>
$("#1,#2,#3").on('click', function()
{
    alert("my message");
});
<script>

如果我点击"3",我将有3次"我的消息"如果我点击"2",我将有2次"我的消息"如果我点击"1",我将有1次"我的消息"

但是,我希望我点击的任何div,我只有1次"我的消息"

感谢您的帮助

您需要停止事件传播到子元素:

$("#1,#2,#3").on('click', function(e){
   e.stopPropagation();
   alert("my message");
});

我们也应该使用简单的return false。

$("#id1,#id2,#id3").click(function(e){
    alert($(this).attr('id'));
    return false;
});