2

チェックボックスが2セットあります。1つはカテゴリ用、もう1つは製品用です。

カテゴリの場合、私はこれを持っています

<div id="category">
    <input type="checkbox" id="cateogry1">
    <input type="checkbox" id="cateogry2">
    <input type="checkbox" id="cateogry3">
</div>

製品の場合、私はこれを持っています

<div id="product">
    <input type="checkbox" id="product1">
    <input type="checkbox" id="product2">
    <input type="checkbox" id="product3">
</div>

私が最初にしたことは、各チェックボックスをループして、このようなすべてのクリックイベントを登録しました

$("input:checkbox").each(function(){
     var localCheckboxId = '#'+$(this).attr('id');
     $(localCheckboxId).click(function() { 
     //did something
     });
});

次に、カテゴリと製品の両方のクリックイベントを分離したいと思います。

jqueryを使用してそれを行う方法は?

4

3 に答える 3

5

含まれているdivIDを使用します。

製品:

$("#product input:checkbox").click(...

カテゴリ

$("#category input:checkbox").click(...
于 2012-11-30T08:59:56.873 に答える
3

次のようなJQueryセレクターを使用できます。

$("#category input").click(categoryFunction);

そしてこのように:

$("#product input").click(productFunction);

何が起こっているのかというと、selectは最初にそれぞれのIDに基づいて選択を制限しますdiv。したがって、このinput部分は「親IDに属する入力子孫のみ」を意味します。

チェックボックス入力要素しかないため、タイプを指定する必要はありません。ただし、実際にさらに多くの入力タイプを使用する場合は:checkbox、セレクターをさらに制限するために余分な部分を追加できます。

$("#category input:checkbox").click(categoryFunction);

これが実際の例idです。クリックされたチェックボックスのを取得する方法も示しています。

于 2012-11-30T08:59:49.987 に答える
0

ループを維持することはできますが、input親にテストを追加します。

if($(this).parent().attr('id') === "category") { ... }
else { ... }
于 2012-11-30T09:00:39.943 に答える