0

大きな長方形の親divが1つあり、その中に多くの子divがあります。親divがクリックされたときに実行されるon(click)関数がありますが、デフォルトでは、親div内の何か(子を含む)がクリックされたときにも実行されます。

ただし、親の特定の子が1つクリックされたときに、on(click)関数を実行したくありません。親divと、この1つの子以外のすべてを選択するセレクターを作成するにはどうすればよいですか?

ありがとう

<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 に答える