關於jquery的click()方法


昨天,有個同事研究了以下jqury的click()方法,代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 
 6 <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
 7      <script type="text/javascript">
 8          $(document).ready(function () {
 9              $('#ago').click(function () {
10 
11                  $('#a01').click();
12                  $('#a02').click();
13 
14              });
15          });
16          $(function () {
17              $("#a01").click( function () {
18                 window.open("http://www.baidu.com" ) });
19          })
20          $(function () {
21              $("#a02").click( function () {
22                 window.open("http://www.g.cn" ) });
23          })
24      </script>,
25 </head>
26         <li><a id="a01" target="_blank" href="http://www.baidu.com">www.baidu.com</a></li>
27         <li><a id="a02" target="_blank" href="http://www.g.cn">www.g.cn</a></li>
28 <br>
29         <button id="ago" style="border: 1px solid black;cursor: pointer">更新</button>
30 
31 
32 </body>
33 </html>

 如上代碼,在chrom和Firefox IE 完全不一樣。在chrome上只能打開一個窗口,而其他瀏覽器在點擊更新的時候,可以同時打開2個頁面。

經查資料:

Safari/Chrom只有在標簽input/button情況下,支持click方法,而我們的例子中非如上標簽。所以,我們在調用click()方法的時候,出現問題。

既然不支持jquery的方法,那我們使用dom的dispatchEvent方法,這樣就支持了。代碼如下:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 
 6 <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
 7      <script type="text/javascript">
 8       function dispatch(el, type){
 9         try{
10             var evt = document.createEvent('Event');
11             evt.initEvent(type,true,true);
12             el.dispatchEvent(evt);
13             }catch(e){alert(e)}
14         }
15      $(function () {
16             $("#ago").click(function () {
17                 var a01 = document.getElementById('a01');
18                 var a02 = document.getElementById('a02');
19                 dispatch(a02, 'click');
20                 dispatch(a01, 'click');
21 
22 
23             })
24 
25      });
26          $(function () {
27              $("#a01").click( function () {
28                 window.open("http://www.baidu.com" ) });
29          });
30          $(function () {
31              $("#a02").click( function () {
32                 window.open("http://www.g.cn" ) });
33          })
34      </script>
35 </head>
36         <li><a id="a01" target="_blank" href="http://www.baidu.com">www.baidu.com</a></li>
37         <li><a id="a02" target="_blank" href="http://www.g.cn">www.g.cn</a></li>
38 <br>
39         <button id="ago" style="border: 1px solid black;cursor: pointer"><a id="2"></a>更新</button>
40 
41 
42 </body>
43 </html>

 


免責聲明!

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



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