1

おい!

主題に切り込みます。jquery コードは次のとおりです。

jQuery(function() {
    jQuery('.entry-content h1').nextUntil('h1').hide().prev().click(function () {
        jQuery(this).nextUntil('h1').slideToggle();

});});

ここにhtmlがあります:

<div class="entry-content>
   <h1>Header 1</h1>
   <p>Paragraph 1</p>
   <ul>
      <li>Text</li>
      <li>Some more text</li>
   </ul>
   <h1>Some Images and a div</h1>
   <img src="image.jpg">
   <div class="somediv">
     <!--Some stuff -->
   </div>
   <h2>InBetween header</h2>
   <p>text</p>
   <ul>
      <il>text</li>
   </ul>
</div>

これで、h1s スライドの下のコンテンツを切り替えて表示し、もう一度切り替えるとスライドアップします。しかし、問題は、h2 の画像をクリックしたときにも効果が発生することです。私はこれについてネットを検索しようとしましたが、まだ答えを得ていません:/私は助けを大いに感謝します:) 「InBetween」h1を短縮するさまざまな種類のコンテンツがたくさんあるページの単純な小さなスクリプトそれらの下のコンテンツを非表示にし、クリックすると表示することでページを表示します。

4

2 に答える 2

0

この問題を解決するために私をもう少し一生懸命働かせてくれた Julian に感謝します ;)

想定どおりに動作するコードは次のとおりです。h1要素のみにクリックを適用します:)問題は、すべての要素にクリックを適用したことでした.thx jul :)

これが作業中のjQueryです(wpで行われたため、正しい場合は競合モードがオンになっています)

jQuery(function() {
    jQuery('.entry-content h1').css('cursor' , 'pointer').click(function () {
    jQuery(this).nextUntil('h1').slideToggle();
    }).nextUntil('h1').hide();
});
于 2011-03-13T14:18:01.507 に答える
0

@Ulle、あなたのコードは期待どおりに機能しています。次のuntil関数を定義する次の抜粋を参照してください

一連の DOM 要素を表す jQuery オブジェクトを指定すると、.nextUntil() メソッドを使用して、DOM ツリー内のこれらの要素の後続要素を検索し、メソッドの引数に一致する要素に到達すると停止します。返される新しい jQuery オブジェクトには、.nextUntil() セレクターによって一致するものまでのすべての兄弟が含まれますが、これは含まれません。セレクターが一致しないか指定されていない場合、後続のすべての兄弟が選択されます。このような場合、フィルター セレクターが提供されていない場合に .nextAll() メソッドが行うのと同じ要素を選択します。

ここで完全な定義を見つけることができます

次のすべての兄弟に Click イベントを添付しました。

于 2011-03-09T22:25:39.813 に答える