2011-01-23 28 views
2

私は、次の、同じクラスが異なるトリガイベントを持つ2個のタグを持っている例を示します。jqueryの同じクラスを持つ2つの異なるトリガ

<a class="remove">remove this</a> 
<div class="status"><a class="remove">Remove this status div only</a></div> 

in jquery i have it like 
$(".remove").live('click', function()... (this gets trigger for both) 
$(".status_update > .remove").live('click', function()... (i want this to trigger for status div remove link) 

私は同じでそれを行うカント、二つの異なるトリガーでこれを実行する必要がありますトリガーコール。

答えて

1

$(".remove").live('click', function() { 
    if ($(this).parent().hasClass('status_update')) // execute inner links code 
    else // execute outer links code 
}); 
+0

2つの異なる呼び出しでこれを行う必要があります – Basit

+0

私はあなたがそのために別のクラス名を割り当てる必要があると思います。 ( '.remove')、それはクラスremoveを持つすべての要素に常に適用されます。クラス名を変更したくない場合は、チェックイン機能があります – shankhan

1

クリックしたアンカーの親のクラス名が.statusであるかどうかをテストし、.unwrapまたは.removeのいずれかを使用して、それに応じて行動することができます。

$("a.remove").live('click', function() { 
    if($(this).parent().hasClass("status")) { // or $(this).parent('.status').length 
     $(this).unwrap("div.status"); 
    } else { 
     $(this).remove(); 
    } 
}); 
+0

おかげで答えをカリムが、私は必要とするこれを試してみてください2つの異なる呼び出しでこれを行うには、1つはグローバルで、もう1つはすべての別のページに変更するサブセクションであるため、1つの呼び出しでそれを行うことはできません。 – Basit

+0

@Basit - 私は少し失われています。 '.unwrap'と' .remove'は必要なものなのですか?あなたの質問にある2つのイベントハンドラでのみですか?それとも別の問題がありますか? – karim79

+0

@Basit - 条件付きで両方のリンクタイプを1人で処理できる場合、なぜ2つのイベントハンドラが必要ですか?特別な理由はありますか? – karim79

関連する問題