如何模拟锚链接点击

时间:2010-12-02 17:55:13

标签: jquery anchor

我正在尝试触发.jquery的链接点击。有人知道为什么以下不起作用。

<!DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html lang="en"> 
  <head> 
    <title>test</title>
  </head>
  <body> 
    <div>
       <a id="google_link" href="http://google.com" target="_blank">click to go to google</a>
    </div>
    <div id="google_link_proxy">click here to do the same as the link above</div>

    <script type="text/javascript">      
     $("#google_link_proxy").click(function(event){
         $("#google_link").click();
     });
    </script>
  </body>
</html>

6 个答案:

答案 0 :(得分:36)

jQuery方法完全忽略href

$('#google_link').click(); // ignores href!

原生DOM方法做得对:

$('#google_link')[0].click();

无论href是网址,片段(例如#blah)还是javascript:,都可以使用。

答案 1 :(得分:21)

如果您使用jQuery和本机DOM,则可以单击锚点

// insert an <a> into document and click it **natively**
// (.get(0) returns the DOM element)
$('<a id="fred99" />').attr('href', '#david').attr('target', '_blank')
.text('LINK').appendTo('body').get(0).click();

// now we've clicked, tidy up
$('#fred99').remove();

答案 2 :(得分:20)

看起来您的$("google_link_proxy")选择器已关闭。试试$("#google_link_proxy")

您还需要使用})关闭观察电话。

这些是上面代码的语法错误,但我不认为默认情况下这些函数是在jQuery中提供的。

以下是我认为您的目标:

$("#google_link_proxy").click(function(event){
    window.open($("#google_link").attr('href'),'_blank')
});

答案 3 :(得分:2)

使用click()

$("#google_link_proxy").click(
    function(){
        $("#google_link").click();
    }
);

fireEvent和observe不是jQuery API的一部分

答案 4 :(得分:2)

确保将jQuery代码包含在 ready 块中,如此

$(document).ready(function(){/* your code here */});

这可确保在加载所有内容和图像后触发脚本。

答案 5 :(得分:0)

这可以在没有jQuery的情况下完成:

document.querySelector('#google_link').click()