0

我有一个大的矩形父 div,里面有很多子 div。我有一个 on(click) 函数,该函数在单击父 div 时运行,但默认情况下,它也会在单击父 div 中的任何内容(包括子 div)时运行。

但是,我不希望在单击父项的一个特定子项时运行 on(click) 函数。我如何制作一个选择器来选择父 div 以及除了这个孩子之外的所有内容?

谢谢

<div class="box"">

<div class="overlay"><div id="text"></div></div>
<div class="slide">
    <div class="slideleft"></div>
    <div class="slideright">
        <span class="upvote">Upvote</span>
        <span class="counter"></span>
    </div>
</div>

</div>

现在,这一切都在 'box' div 中,您可以看到这里发生的事情的演示。如果您在已经单击了一个框后单击了赞成按钮,那么事情会滑回我不希望的位置。这是我现在尝试使用的代码,但它不起作用:

$("body").on("click", ".box", function(e){
        if(e.target.class == 'upvote') {
            return false;
        } else {
                $(this).children('.slide').slideToggle(150);
                $(this).children('overlay').css('background-color', 'rgba(0,0,0,0)');
            }
});
4

2 回答 2

3

工作小提琴

$("body").on("click", ".box", function (e) {
if (e.target.className != 'upvote') {
  $(this).children('.slide').slideToggle(150);
  $(this).children('.overlay').css('background-color', 'rgba(0,0,0,0)');
}
});
于 2013-01-05T20:34:52.543 回答
1

你可以这样做:

$('.child').on('click', function(e){
   e.stopPropagation();
});

演示

于 2013-01-05T20:36:56.710 回答