1

JQueryでslideToggle()を使用してdivを表示しています。しかし、これは機能しません。

別のテストを行いましたが、何も機能しません...

私はこれを持っています:

<div class="domaine">
<a>1. Compétences Scientifiques Transversales</a>
<br>
<div class="ssdomaine" style="display: none;">
    <a>1.1. Sciences et techniques</a>
    <br>
    <div class="competence" style="display: none;">
        <a href="#">1.1.1. Génie thermique et thermodynamique</a>
        <br>
    </div>
</div>

これは、単一の「能力」を含む単一の「ssdomaine」を含む単一の「domaine」です。

しかし、複数の「ssdomaine」を含む複数の「domaine」を複数の「ssdomaine」を含むデータベースに送信できるデータベースでリクエストを行います。

IDを指定せずに.slideToggle()を作成したい。

私のJQueryコードは:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script>
$(document).ready(function() {
   $('.ssdomaine').hide();
    $('.competence').hide();
   $('.domaine a').click(function() {
      $(this).next('.ssdomaine').slideToggle(1000);
      return false;
   });
   $('.ssdomaine a').click(function() {
          $(this).next('.competence').slideToggle(1000);
          return false;
    });
 });
</script>

そして私はこのリンクで同じことを試みました:http: //jsfiddle.net/6GRJr/168/

そしてそれは機能していますが、それはdomaine、ssdomaine、およびコンピテンシーの1つの発生のみにあります。

何か案が ?

4

3 に答える 3

2

それはと関係がありheightます、このフィドルを見てくださいhttp://jsfiddle.net/6GRJr/169/

アップデート

表示されない理由competenceは、フォームをロードすると非表示になり、フォームをロードすると、コンピテンシーではなく表示slideToggleされるだけにssdomaineなるためです。ssdomaine

アップデート

これでうまくいくはずですhttp://jsfiddle.net/6GRJr/172/

于 2012-11-21T13:37:55.907 に答える
1

jQueryのslideToggle()はせいぜいバグがあります。幸い、HTML5には、JavaScriptなしでこの機能を提供する新機能があります。

新しいHTML5タグを確認してください。

http://www.w3schools.com/tags/tag_details.asp

于 2017-01-17T15:40:00.393 に答える
0

.next直接の兄弟のみを確認します。セレクターを追加すると、その要素がセレクターと一致するかどうかのみがチェック.nextAll('.selector') されますが、要素のコレクションが返されるため、次を使用してコレクションを制限することをお勧めします。.first()

$(document).ready(function() {
   $('.ssdomaine').hide();
    $('.competence').hide();
   $('.domaine a').click(function() {
      // next only looks at the immediate sibling, which in you code is a <br />
      //$(this).next('.ssdomaine').slideToggle(1000);


      // this would open all elements
      $(this).nextAll('.ssdomaine').slideToggle(1000); 

また

      // this would open this first instance of .ssdomaine
      $(this).nextAll('.ssdomaine').first().slideToggle(1000);

      return false;
   });
   $('.ssdomaine a').click(function() {
          $(this).next('.competence').slideToggle(1000);
          return false;
    });
 });
于 2012-11-21T14:18:09.953 に答える