1. 程式人生 > >jquery+javascript觸發a標籤的點選事件

jquery+javascript觸發a標籤的點選事件

今天專案經理跟我說window.open()在一些瀏覽器上會被攔截,當時的解決方案是:用a標籤的target="_blank"屬性也可以開啟窗體頁面

於是解決了A問題出現了B問題:點選按鈕時候去觸發a標籤失敗了?

這是給按鈕繫結的a標籤點選事件:

$("#bt").click(function() {
	$("#a").click();
})

在jquery中呼叫click事件就相當點選了按鈕一樣,是用程式去點選按鈕,再觸發事件,可是對a標籤卻不行我的理解是a標籤沒有方法所以觸發不了。

於是我想會不會是$("#a").click()的問題?於是我直接在頁面載入寫下觸發a標籤的方法:

$(function() {
$("#a").click();
});

但是最後結果頁面載入的時候還是沒有觸發a標籤的觸發事件

於是我換了一種方法就成功了,我把獲取物件的換成了javascript的獲取方式:document.getElementById("a")結果成功了  

$("#bt").click(function() {
document.getElementById("a").click();
})
最後發現$("#a")獲取的是jquery的物件,而document.getElementById("a")獲取的是DOM物件 但是一開始我第一想到的方法是用純粹的javascript方式:
$("#bt").click(function() {
	document.getElementById("a").onclick();
})

onclick()也可以觸發事件,測試後發現onclick其實跟click不同,onclick觸發的是方法,而click觸發是按鈕點選事件,然後觸發方法
如果該物件沒有事件onclick則無法被觸發,而click卻可以觸發但是因為$("#a")獲取的是jquery的物件卻反倒影響到了click事件,而用document.getElementById("a")沒有影響 以上是我個人觀點,如果有誤請指正,謝謝