2011-01-23 3 views
2

내가 같은 클래스하지만 서로 다른 트리거 이벤트가 두 개의 태그를 가지고 서로 다른 트리거가 예입니다 :JQuery와이 같은 클래스

<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

두 개의 다른 호출이 필요합니다 – 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

감사가 대답 카림 시도,하지만 난 필요 두 가지 다른 호출에서 이것을 수행하려면 하나의 호출에서 수행하십시오. 하나는 전역이고 다른 하나는 다른 모든 페이지로 변경되는 하위 섹션입니다. – Basit

+0

@Basit - 나는 조금 길다. '.unwrap'과'.remove'는 필요한 것인가? 질문에있는 두 개의 이벤트 처리기에서만? 아니면 다른 문제가 있습니까? – karim79

+0

@Basit - 조건부를 사용하여 두 링크 유형 모두를 처리 할 수있는 경우 왜 두 개의 이벤트 처리기가 필요합니까? 거기에 특별한 이유가 있습니까? – karim79

관련 문제