0

div 自体がクリックされているときに、親 div を切り替えようとしています。しかし、子の div または要素が関数をトリガーしないようにしたいと考えています。どうやってやるの?

//javascript (jquery enabled)
function toggle(parent_id) {
  $('.'+parent_id).toggle();
}
<!-- html -->
<div class="parent parent1" onclick="toggle('parent1')">
  <div class="child1"></div>
  <div class="child2"></div>
</div>

<div class="parent parent2" onclick="toggle('parent2')">
  <div class="child1"></div>
  <div class="child2"></div>
</div>

ありがとう!

更新: 特定の div を切り替えようとしているため、関数を使用して特定の親 ID を渡します。

すなわち。親 1 をクリックすると、親 1 が切り替わります。親 2 をクリックすると、親 2 が切り替わります

4

2 に答える 2

4

以下は仕事をするべきです:

$(".parent").click(function(e) {
    if (e.target == this) {
        $(this).toggle();
    }
});

デモ: http://jsfiddle.net/Md4U5/

于 2012-09-05T14:38:21.787 に答える
0

@VisioN の回答を拡張するだけで、これらすべてのdivs のクラスがparent次のようになります。

$("[class~=parent]").click(function(e) {
    if (e.target == this) {
        $(this).toggle();
    }
});
于 2012-09-05T14:48:56.573 に答える