2010-12-19 108 views
3

假設我在我的頁面中有一個錨點:<a href="#header" id="anchor">turn to header</a>然後我還在我的頁面<input type="button" value="triger anchor">中設置了一個按鈕。我想要做的是,當我單擊按鈕時,它會觸發錨點的默認點擊事件,如頁面轉到「標題」。所以我寫$("input").click(function(){$("#anchor").trigger("click");});但是,它似乎不起作用。所以我怎麼能做到這一點?謝謝如何使用jquery觸發器錨點的默認點擊事件?

回答

4

請參閱this answer

,而不是試圖觸發click事件,嘗試設置window.location屬性:

window.location = '#header'; 

或許:

$("input").click(function() { 
    window.location = $('#anchor').attr('href'); 
}); 
+0

請注意,這不會發送引用IE6,IE7和我認爲IE8。 – 2011-09-23 20:32:21

+0

這只是拯救了我的夜晚!謝謝。 – odedbd 2012-11-18 21:11:50

-1

你有一個拼寫錯誤。請使用:

{$("#anchor").trigger("click");}); 
+0

......對不起,它只是一個寫錯誤。在我的項目中它是「觸發」,並且不工作...... – hh54188 2010-12-19 08:04:10

+0

好吧,試着添加$(「#anchor」)。bind('click ',function(){alert('click')});它是幫助你檢查事件發生 – 2010-12-19 08:13:46

+0

也添加attrib。 ID爲按鈕,並在你的jQuery的查詢中使用它 – 2010-12-19 08:15:17

0

你也可以用它來觸發點擊/任何事件

$('#bycategory').click(function(){ 
    alert('triggered'); 
}); 
$('#bycategory').triggerHandler("click"); 
0

jQuery沒有辦法觸發本地DOM事件直。

要做到這一點,你可以使用普通的舊標準DOM方法:

var evt = document.createEvent("Event"); 
evt.initEvent("click", true, true); 
$('#anchor').get(0).dispatchEvent(evt); 

有關支持IE8的或更早,你需要使用IE特定事件方法createEventObjectfireEvent

5

試試這個,爲我工作!

$("#anchor").get(0).click(); 

這將調用錨的默認點擊。