2012-01-04 40 views
2

我想模仿一個錨點擊時,用戶點擊包含<TD>但有問題。jQuery - 模仿點擊

這是JS部分:

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

這是HTML部分:

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

當有人點擊<TD> contactTab,它應該觸發<A> contactTabLink然後啓動一個點擊事件覆蓋。我的問題是,帶有點擊監聽器的JS函數根本沒有啓動。

任何人都可以看到我要去哪裏嗎?

編輯1:

我已經改變了選擇有#的,但它仍然不會閃光功能。

+0

$('contactTab')'將嘗試查找標籤爲'contactTab'的元素。你想要[ID選擇器](http://api.jquery.com/id-selector/)。觸發點擊事件不會使瀏覽器按照鏈接。 – 2012-01-04 16:11:30

+0

是的,你錯過了jQuery選擇器中ID前面的「#」。使用$('#contactTab')。而不是$('contactTab') – 2012-01-04 16:11:51

+0

其中是$('contactTabLink')'定義的點擊偵聽器?您點擊被觸發,但我沒有看到爲它定義的任何偵聽器,因此沒有采取點擊事件的操作。 – tkone 2012-01-04 16:12:24

回答

9

您的選擇器不正確。

它應該是這樣的:

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

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

}); 
+1

你的第二行仍然缺少# – 2012-01-04 16:13:03

+0

沒關係,看起來像你現在已經修復它 – 2012-01-04 16:13:19

+0

是的,我發佈後,我看到了錯誤。 Thax! – nolabel 2012-01-04 16:20:49

1

您的選擇器是錯誤的。
對於ID選擇器,您需要#

0

你的選擇是錯誤的 - 你正在使用的ID,所以你應該在前面「#」。

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

加入哈希(#)來選擇後,確保功能被包裹在$(文件)。就緒(函數(){} yourFunction中)...

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

我想這裏需要注意的是,你的html格式化,$('#contactTabLink').trigger("click")將導致$('#contactTab').click觸發,因爲它是#contactTabLink的父親,因此導致無限循環的遞歸。有些瀏覽器會向控制檯輸出一個錯誤,或者根本沒有迴應。您可以相應地安排您的html以避免這種情況:

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