2013-03-11 2 views
1

간단하게 들리지만 CSS 클래스를 변경하는 솔루션이 있습니다.하지만 다음 문제에 대한 즉석 솔루션이 있는지 궁금합니다.동일한 선택기 속성을 가진 다른 요소에서 jquery 트리거를 가리 키십시오.

이것은 a similar question이지만 내 시나리오에서는 "너무 많은 재귀"를 만듭니다.

그래서 두 탭 모두 다음 탭으로 이동합니다. 하나는 내용 상단에, 하나는 아래에 있습니다. 둘 중 어느 하나를 가리키면 호버 상태를 보여주기를 바랍니다. 그들에는 동일한 html 부호가있다;

<a href="#" class="button step-next" onclick="showStep(3); return false;">Next &raquo;</a> 

다음 게시물을 보면 해결책을 찾았습니다.

$('a.step-next').on('mousenter mouseleave', function(e) { 
    $('a.step-next').not(this).trigger(e.type); 
}); 

그러나 not()를 사용하는 나의 초기 논리는 잘못되었습니다. 두 요소 사이에서 이벤트를 앞뒤로 시작합니다.

분명히, 나는 새로운 클래스를 추가하고 hover/not에 그것을 제거하기 위해 CSS를 바꿀 수있다. 그것은 내려갈 경로 다. 그러나 방아쇠 해결책 만 있습니까?

+0

: 호버 의사 클래스를 사용할 수없는 이유가 있습니까? 나는 아무것도 놓치지 않으면 훨씬 간단 해 보인다. – Sacha

+0

예 CSS가 가장 좋습니다. a.button : hover {background : # ffff00;} – MarmiK

답변

0

당신이 재하는 코드 생성 이벤트를 원하지 않는다 코드를 트리거 ..

그렇다면, 당신은 extraParameters.trigger() 방법을 사용할 수 있습니다

$('a.step-next').on('mousenter mouseleave', function(e, fromCode) { 
    if (fromCode === undefined){ 
     $('a.step-next').not(this).trigger(e.type, true); 
    } 
}); 
+0

이것이 호버 스타일을 유지하기 위해 CSS 클래스를 사용해야 할 필요는 없지만 [http://forum.jquery.com/topic/jquery-triggering-css-pseudo-selectors-like- hover) - 실제로 코드가 생성하는 무한 루프를 막는 특정 질문을 해결하므로 답변에 만족합니다. – Jez

0

회원님이 달성하고자하는 것을 확인 (html required) 그러나 이것은 당신을위한 솔루션을 찾고 있습니다 될 수 있습니다 만약 내가 제대로 이해하고

$('a.step-next').on('mousenter mouseleave', function(e) { 
    $(this).siblings('a.step-next').trigger(e.type); 
}); 
+0

이 경우 두 요소는 같은 부모 내에 있지 않습니다. 그렇지 않으면이 해결책이 될 수 있습니다. 답장을 보내 주셔서 감사합니다. – Jez

관련 문제