1

次のコードがある場合、

$(".selector1, .selector2, .selector3").click(function() {
    switch(CURRENT SELECTOR) {

    }
});

「selector1」、「selector2」などの switch ステートメントの内部に現在のセレクターが必要です。jQuery のセレクター オプションは廃止されたため、使用できません。私はjquery 1.4.2も使用しているので、それを維持してください。

4

3 に答える 3

3

attr関数を使用して、クリックされた要素のクラス値を取得します。

$(".selector1, .selector2, .selector3").click(function() {
    var elem_class = $(this).attr("class");
    switch(elem_class) {

    }
});

要素に複数のクラスがある場合は、次のことができます。

$(".selector1, .selector2, .selector3").click(function() {
    var arr = ["selector1", "selector2", "selector3"];
    var arr2 = $(this).attr("class").split(" ");
    var choosen_one = false;
    for(var i=0; i<arr.length; i++) {
       for(var j=0; j<arr.length; j++) {
          if(arr[i] === arr2[j]) {
             choosen_one = arr2[j];
             break;
          }
       }
       if(choosen_one) {
           break;
       }
    }

    switch(choosen_one) {

    }
});

ワーキングデモ

参照:

http://api.jquery.com/attr/

于 2013-10-08T15:56:19.630 に答える
0

問題を処理するには、次の 4 つの方法があります。

1)要素ごとに1つしかない場合のクラス

$(".selector1, .selector2, .selector3").click(function() {
    switch($(this).attr("class")) {

    }
});

2)複数回使用したい場合、一意の IDは良くありません

$("#selector1, #selector2, #selector3").click(function() {
    switch($(this).attr("id")) {

    }
});

3)ユニークなセレクター

$("[data-selector=selector1], [data-selector=selector2], [data-selector=selector3]").click(function() {
    switch($(this).data("selector")) {

    }
});

4)複数のイベント ハンドラー:

$(".selector1").click(function() {
    myFunction($(this));
});

$(".selector2").click(function() {
    myFunction($(this));
});

$(".selector3").click(function() {
    myFunction($(this));
});

function myFunction(myThis) {
    //
}
于 2013-10-08T15:57:31.377 に答える
0

.selectorjQuery 1.4.2 を使用している場合、プロパティを使用できないのはなぜですか? 1.7 まで非推奨ではありませんでした。

于 2013-10-08T16:08:28.563 に答える