這篇文章主要介紹了jQuery中$("a").click()無效問題分析,需要的朋友可以參考下
今天做表格前台匯出到xls時,想自動觸發a的點擊。但失敗。最後找到這個文件。
我嘗試過多次用jQuery模擬使用者點擊a標籤的功能,但都沒有成功,並且困擾了很久。前段時間的一次發呆,冒出了新的想法,於是就動手進行了測試。
先看下邊的程式碼:
<html> < head >磨途歌-A标签测试1<head> <body> <a href="http://blog.mo2g.com">磨途歌<a> </body> </html> <script src="http://ajax.google api s.com/ajax/libs/jquery/1.7.2/jquery.min.js"><script> <script> jQuery(function($) { //给所有A标签绑定点击触发 事件 $('a').click(function() { alert(1); }); //触发所有A标签的点击事件 $('a').click(); }); </script>
上邊的程式碼確實已經觸發了點擊A標籤事件,但大家一定也會有疑問,為什麼點擊了A標籤,卻不觸發A標籤的跳轉事件?
一開始還以為是瀏覽器做了相應的安全措施,屏蔽了JS對A標籤的操作,後來發現,並不是這樣的,接下來就說說其中的原委。
在開始解釋前,我先拋出一個問題。在我們點擊「A標籤」的時候,究竟是點擊了什麼才發生的跳躍?
1)點擊的是「A標籤」本身?
2)點擊的是「A標籤」中顯示的文字?
說到這裡,大家應該明白了,我們上邊的程式碼已經證實了點擊A標籤本身,並不會觸發跳到指定連結的事件,就是說,我們平常都是點擊的A標籤中的文字了?
既然有了頭緒,那就來動手試試。
<html> <head>磨途歌-A标签测试2<head> <body> <a href="http://www.mo2g.com">磨途歌<a> </body> </html> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"><script> <script> jQuery(function($) { var mo2g = '<span id="mo2g">磨延城<span>'; //给A标签中的文字添加一个能被jQuery捕获的元素 $('a').append(mo2g); //模拟点击A标签中的文字 $('#mo2g').click(); }); </script>
這下效果出來了,事實證明了上述的推斷是正確的,所以要想用JS模擬點擊A標籤事件,就得先往A標籤中的文字添加能被JS捕獲的元素,然後再用JS模擬點選該元素即可。
以上是jQuery:.click()無效問題的分析介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!