5

私は自分がこれをたくさんやっていることに気づきます:

$(document).on("click","li",function(){
    $(".selected").removeClass("selected"); // Remove any old selected
    $(this).addClass("selected"); // Apply selected to this element
});

このようなタスクを実行するための、より適切で反復の少ない方法はありますか? クラスを切り替えるように。ところで、一度に選択できる要素は 1 つだけです。

ありがとう。

4

5 に答える 5

1

ジャックと議論した後、私は私の提案をします。あなたのリストがここにあると仮定します:

var $myList = $('#list');

それで:

$myList.on("click","li",function(){
    $(".selected",$myList).removeClass("selected"); // Remove any old selected
    $(this).addClass("selected"); // Apply selected to this element
});

また

$myList.on("click","li",function(){
    $(this).siblings(".selected").removeClass("selected"); // Remove any old selected
    $(this).addClass("selected"); // Apply selected to this element
});

あなたのやり方は私には十分ですが、ジャックの方法はより速く、私の方法は両方の中間です。selected要素が 1 つだけであると想定する必要がないため、これが気に入っています。そして、私が知る限り、コンテキストを提供すると検索が高速になります

于 2013-05-27T15:45:36.680 に答える