0
 $('.dragbox').each(function(){
        $('.close').click(function(){
            $(this).parent().hide();
        }),
        $('.colpase').click(function(){
            $(this).siblings('.dragbox_content').toggle();
        })
     });    
4

5 に答える 5

3

jqueryがラップされたセット(コレクション)として機能することを考えると、各メソッドが必要だとは思いません。

$('.dragbox').find('.close').click(function(){
    $(this).parent().hide();
})
$('.dragbox').find('.colpase').click(function(){
    $(this).siblings('.dragbox_content').toggle();
})

ハンドラーは、それぞれを必要とせずに、一致したすべての要素に適用されます。

これにより、.dragboxアイテム内のすべての.closeと.colpaseが検出されます。

パフォーマンスをわずかに向上させるために、findを使用するように編集しました。ダン/アレックスに感謝します。

于 2010-07-05T17:22:45.023 に答える
1

いいえ。おそらく、各ドラッグボックス内の一致する要素にクリック ハンドラーを適用する必要があります。あなたはそれを行うことができます:

 $('.dragbox').each(function(){
        $('.close', this).click(function(){
            $(this).parent().hide();
        }),
        $('.colpase', this).click(function(){
            $(this).siblings('.dragbox_content').toggle();
        })
     });    

ハンドラーをグローバルに追加したいだけなら、each は必要ありません。

于 2010-07-05T17:18:57.030 に答える
1

そこに each() 関数が必要なようには見えません。イベント ハンドラーをオブジェクトに複数回適用している可能性があります。ただ:

    $('.close').click(function(){
        $(this).parent().hide();
    });
    $('.colpase').click(function(){
        $(this).siblings('.dragbox_content').toggle();
    });

トリックを行う必要があります。

于 2010-07-05T17:21:45.253 に答える
0

「親」を「各」の実際の「.dragbox」に言及している場合

$('.dragbox').each(function(){

  var self = this;

  $(self).find('.close').bind("click", function(){

    $(self).hide();

  }); // <-- ","?

  $(self).find('.colpase').bind("click", function(){

    //This line confuses me because you could do the same in the selector for the click event
    //unless you do have more things in the function
    $(this).siblings('.dragbox_content').toggle();

  });

  /*
  $(self).find('.colpase').siblings('.dragbox_content').bind("click", function(){
    $(this).toggle();
  });
  */

}); 
于 2010-07-05T20:41:43.263 に答える
0
function set_colors(pick_color)
{
    var color_code=pick_color;
    $('#'+ color_owner).parent().css('background-color',color_code);
}
于 2010-07-05T18:25:57.730 に答える