2012-01-04 5 views
2

사용자가 <TD>이 포함되어 있지만 문제가있을 때 앵커 클릭을 모방하고 싶습니다.jQuery - Imitate Click

이것은 JS의 일부입니다

$('contactTab').click(function() { 
    $('contactTabLink').trigger("click"); 
}); 

그리고 이것은 HTML의 일부입니다 누군가가 <TD> contactTab를 클릭하면

<td class="previewTabs" id="contactTab"> 
<a class="previewTabLink" id="contactTabLink" rel="#contactOverlay">CONTACT</a> 
</td> 

, 그것은 <A> contactTabLink 다음 출시에 클릭 이벤트를 트리거해야 오버레이. 내 문제는 클릭 수신기와 JS 함수는 전혀 발사되지 않습니다.

어디서 잘못 볼 수 있습니까?

편집 1 :

나는 #의 's을 (를) 가지고있는 선택기를 변경했지만 여전히 기능을 발생하지 않습니다.

+0

'$ ('contactTab')'태그가 'contactTab'인 요소를 찾으려고 시도합니다. [ID-selector] (http://api.jquery.com/id-selector/)가 필요합니다. 클릭 이벤트를 트리거해도 브라우저가 링크를 따라 가지 않습니다. –

+0

예, jQuery 선택기의 ID 앞에 "#"이 없습니다. $ ('# contactTab')를 사용하십시오. $ ('contactTab')이 아님 –

+0

'$ ('contactTabLink')에 정의 된 클릭 리스너는 어디에 있나요? 클릭이 트리거되었지만 이에 대해 정의 된 리스너가 표시되지 않으므로 클릭 이벤트를 취할 아무런 조치가 없습니다. – tkone

답변

9

선택기가 올바르지 않습니다.

그것은이 있어야한다 :

$('#contactTab').click(function() { 

    $('#contactTabLink').trigger('click'); 

}); 
+1

두 번째 줄에 여전히 # –

+0

이 없습니다. 신경 쓰지 마시구. 지금 고쳐 주셨습니다. –

+0

예, 게시 한 후에 오류가 발생했습니다. 택스! – nolabel

1

셀렉터가 잘못되었습니다.
ID 선택자는 #이 필요합니다.

0

귀하의 선택기가 잘못 - 당신이 앞에 '#'을 가지고 있어야 있도록 아이디의를 사용하고 있습니다.

$('#contactTab').click(function() { 
    $('#contactTabLink').trigger("click"); 
}); 
0

선택기에 해시 (#)를 추가 한 후, 그 함수는 $에 싸여되어 있는지 확인 (문서) .ready (함수() {yourFunction}) ... 내가 생각

$(document).ready(function() { 
    $('#contactTab').click(function() { 
     $("#contactTabLink").trigger("click"); 
    }); 
}); 
1

여기서 주목할 점은 html이 포맷 된 방식과 함께 $('#contactTabLink').trigger("click")은 의 부모이므로 $('#contactTab').click이 발생하게되어 무한 루프 재귀가 발생합니다. 일부 브라우저는 콘솔에 오류를 인쇄하거나 단순히 응답하지 않습니다. 다음을 피하기 위해 html을 적절히 정렬 할 수 있습니다.

<td class="previewTabs" id="contactTab"> 
    <a href="javascript:;" class="previewTabLink">CONTACT</a> 
</td> 
<a class="previewTabLink" id="contactTabLink" rel="#contactOverlay"></a>