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