今天項目經理跟我說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")沒有影響