クリックした兄弟オブジェクトの隣にある各兄弟オブジェクトを隠すのに問題があります。 単純な$(".hider").hide();
は私のためには機能しません。なぜなら、複数のオブジェクトがあり、その隣にある兄弟を非表示にしたいからです。他の人はhider
クラスを取得する必要があります。jQuery - .on( "click")各兄弟を非表示にする
$(document).on('click', '.hider', function() {
console.log("clicked");
var obj = $(this);
obj.parent("ul").children("span.hider").each(function() {
$(this).removeClass("hider");
console.log($(this));
});
});
.c-pointer {
cursor: pointer;
}
li a span {
color: red
}
li a span.hider {
color: #000
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="emoticon">
<div class="sb-social">
<ul class="c-default">
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
</ul>
</div>
</div>
<!-- -->
<hr/>
<!-- -->
<div class="emoticon">
<div class="sb-social">
<ul class="c-default">
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
</ul>
</div>
</div>
<!-- -->
<hr/>
<!-- -->
<div class="emoticon">
<div class="sb-social">
<ul class="c-default">
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
<li class="enabled">
<a class="c-pointer">
<span class="hider">Click on me to hide All</span>
</a>
</li>
<!-- -->
</ul>
</div>
</div>
<!-- -->
<hr/>
誰も前にこれを経験していますか?
クリック後の兄弟または要素ですか? –
** obj.closest( "ul")。find( "span.hider")removeClass( "hider"); **すべてのスパンをループする必要はありません。 – Curiousdev
'parent'の代わりに' parents'を試してください。 'obj.parents(" ul ")。find(" span.hider ")removeClass( 'hider');' –