0

目次を動的に作成しています。

階層レベル:

  • 親部門

    • こども課

      • グランドチルドレン部門

このために、 div を動的に作成しています。

次に、それらの div にマージンを割り当てています。

親部門 :-マージンなし

子供部門 :- margin-left :15px;

グランドチルドレン部:- margin-left :35px;

そのため、目次を動的に作成できます。

問題 :

複数の親 div を作成し、階層ごとにサブ div を作成しました。しかし、最初の親 div にクリック イベントを適用している場合、クラスにクリック イベントを追加しているため、そのイベントが他の親 div にも適用されます。

このクリックではslideToggle(). 、クラスを使用しているため、他のクラスにも適用されているため、問題に直面しています。

例:

$('main_div').haml(['%div.g', {id:'g_' + i', name: i}, Parent Div]);//class = 'g'

$('main_div').haml(['%div.g1', {id:'g_' + i, name: i, style:'**margin-left: 15px**;'}, Children Div]);//class = 'g1'

$('main_div').haml(['%div.g2', {id:'g_' + i, name: i, style:'**margin-left: 35px**;'}, Grand Children Div]);//class = 'g2'

この divの 'i'値は、AJAX GET を使用してデータベースから取得されます。

では、どのような変更を行う必要がありますかslideToggle(): これでは、クリックされた親 div の子のみを切り替えたいだけですか?

ヒント/提案をお願いします。

参照コード:

$('#main_div').on('click','.g', function(){
  $('#main_div').find('.g1,.g2').slideToggle();

});
4

3 に答える 3

2

私が正しく理解していれば、slideToggle() はすべての親 div のクリック イベントですか? 関数よりも「this」変数を使用できます。

$(this).find(...some selector for child divs...').slide..

クリック イベントのコードを表示してください。

于 2013-10-26T07:46:55.290 に答える
2

これを試して:

$('#main_div').on('click','.g', function(){
   $(this).find('.g1,.g2').slideToggle();
});

jQueryがクリックハンドラーを呼び出すと、thisクリックされたアイテム、つまり要素に設定されるため、次を使用してそのアイテムの子孫に.gのみ適用されます.find()$(this).find(...

于 2013-10-26T07:58:43.673 に答える