jquery+javascript觸發a標簽的點擊事件


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

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

這是給按鈕綁定的a標簽點擊事件:

 

[javascript]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. $("#bt").click(function() {  
  2.     $("#a").click();  
  3. })  


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

 

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

 

[javascript]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. $(function() {  
  2. $("#a").click();  
  3. });  

但是最后結果頁面加載的時候還是沒有觸發a標簽的觸發事件

 

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

 

[javascript]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. $("#bt").click(function() {  
  2. document.getElementById("a").click();  
  3. })  
最后發現$("#a")獲取的是jquery的對象,而document.getElementById("a")獲取的是DOM對象
 
但是一開始我第一想到的方法是用純粹的javascript方式:
 
[javascript]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. $("#bt").click(function() {  
  2.     document.getElementById("a").onclick();  
  3. })  

onclick()也可以觸發事件,測試后發現onclick其實跟click不同,onclick觸發的是方法,而click觸發是按鈕點擊事件,然后觸發方法
如果該對象沒有事件onclick則無法被觸發,而click卻可以觸發但是因為$("#a")獲取的是 jquery的對象卻反倒影響到了click事件,而用document.getElementById("a")沒有影響


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM