Jquery 如何模拟锚链单击

Jquery 如何模拟锚链单击,jquery,anchor,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> <bod

我正在尝试触发.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>

测试
单击此处执行与上面链接相同的操作
$(“谷歌链接代理”)。单击(函数(事件){
$(“#谷歌链接”)。单击();
});
看起来您的
$(“谷歌链接代理”)
选择器已关闭。试试
$(“#谷歌链接\u代理”)

您还需要使用
}
关闭observe调用

这些是上面代码中的语法错误,尽管我认为默认情况下jQuery中没有提供这些函数

以下是我认为你想要的:

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


fireEvent和observe不是jQuery API的一部分

请确保将jQuery代码包装在如下所示的就绪块中

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

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

如果使用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();
//在文档中插入一个内容并单击它**本机**
//(.get(0)返回DOM元素)
$('').attr('href','#david').attr('target','u blank'))
.text('LINK')。appendTo('body')。获取(0)。单击();
//现在我们点击了,整理一下
$('#fred99')。删除();

jQuery方法完全忽略
href

$('#google_link').click(); // ignores href!
本机DOM方法做了正确的事情:

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

无论
href
是URL、片段(例如
35; blah
)还是
javascript:

都可以这样做,无需jQuery:

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

.observe()
.firevent()
?嗯?你在哪里学的jQuery?我建议。这也是一个很好的参考。你不应该编辑你的问题来改变它的原始含义。你为什么要在这个世界上添加答案的东西到你的问题?这样我们就不会理解,你的问题是什么,什么答案帮助了你@阿法扎尔,这个问题没有答案。你已经把一个问题标记为答案兄弟。看看第一个答案。标记的那个!
.observe()
也不是jQuery API的一部分。编辑它以获得更好的示例。仅供参考:弹出窗口阻止程序可能会阻止此操作。不要使用
$(“#谷歌链接”)。单击()。使用
$('#谷歌链接')[0]。单击()
,它使用DOM提供的click方法而不是jQuery方法。这就是我最终使用的方法。我不知道为什么$(“#…”)。click()不起作用。谢谢,你知道这是否在所有浏览器中都得到了正确的支持吗?是的,我相信它在所有浏览器中都得到了支持。有一个更好的方法。只需执行
$('#google_link')[0]。单击()
IMO,这是真正的解决方案,因为通过javascript更新href值的现有链接上的调用单击不会打开url。此外,它不会被弹出窗口阻止程序锁定,因为它不使用window.open。此解决方案非常有效,谢谢!对或者,如果您更喜欢这种语法,请使用jQuery的
.get()
方法:
$(“#谷歌链接”).get(0)。单击()这肯定是公认的答案,还有@MarkusAmaltheaMagnuson的评论。谢谢各位。
document.querySelector('#google_link').click()