0

jquery コードは、ネストされたリストを通過します。ロードすると、一度はうまく機能しますが(クラスを切り替えます)、完全にクリックしても繰り返されません。このクラスは、三角形の弾丸を左向きから下向きに切り替えます。それを繰り返す方法がわかりません。どんな助けでも大歓迎です。

jQuery(document).ready(function() {
  jQuery(".list-year").click(function() {        
    jQuery(this).removeClass('list-year li');
    jQuery(this).addClass('list-year-down li');  
    jQuery('.list-month').toggle( function() {
        jQuery(".list-year-down").click(function() {
            jQuery(this).removeClass('list-year-down li');
            jQuery(this).addClass('list-year li'); 
        });
    });        
  });
});
4

5 に答える 5

1

Try

jQuery(".list-year").on('click',(function() {        
于 2013-02-25T06:23:11.143 に答える
1

.on()を使用してイベントハンドラーを親要素にアタッチし、セレクターを引数として渡します。

試す:

jQuery(document).ready(function() {
  jQuery(document).on('click, '.list-year', function() {        
    jQuery(this).removeClass('list-year li');
    jQuery(this).addClass('list-year-down li');  
    jQuery('.list-month').toggle( function() {
        jQuery(".list-year-down").click(function() {
            jQuery(this).removeClass('list-year-down li');
            jQuery(this).addClass('list-year li'); 
        });
    });        
  });
});

また、jQuery 1.9.1 +の場合、toggle()は以前のように機能しないことに注意してください...

于 2013-02-25T06:26:54.037 に答える
0

クリックハンドラーを配置した.classを削除するため、次にそれを削除します。つまり、そのバインディングが失われます。上記のDipeshが提案しているように、jQuery 1.7以降では「.on」を使用してください。それ以外の場合は「.live」(非推奨)を使用できます。

于 2013-02-25T06:26:55.230 に答える
0

クラスを切り替えてみてください.toggleClass()

jQuery(document).ready(function() {
  jQuery(".list-year").click(function() {        
    jQuery(this).toggleClass('list-year-down');
    jQuery('.list-month').toggle( function(e) {
      e.stopPropagation();
      jQuery(".list-year-down").click(function() {
        jQuery(this).toggleClass('list-year-down'); 
      });
    });        
  });
});

デフォルトでは、このクラスをlisに設定します。list-year li

于 2013-02-25T06:28:02.110 に答える
0

試してみてください:D

jQuery(document).ready(function() {
  jQuery(".list-year").click(function() {        

    jQuery(this).toggleClass('list-year list-year-down');

  });
});
于 2013-02-25T06:31:43.587 に答える