使用 jQuery 以编程方式单击 <a> 链接
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/9081426/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Using jQuery to programmatically click an <a> link
提问by Stephen Croft
I know this question has been asked before, but after a search on the web I can't seem to find a straight forward answer.
我知道以前有人问过这个问题,但在网上搜索后,我似乎找不到直接的答案。
the HTML
HTML
<a id=myAnchor href=index.php>
the jQuery(Both of these do not work)
jQuery(这两个都不起作用)
$('#myAnchor').click();
or
或者
$('#myAnchor').trigger('click');
What is the simplest and most efficient way to achieve this?
实现这一目标的最简单和最有效的方法是什么?
回答by user3346133
Try this:
尝试这个:
$('#myAnchor')[0].click();
It works for me.
这个对我有用。
回答by Stephen Croft
window.location = document.getElementById('myAnchor').href
回答by bang
Click just triggers the click event / events not the actually "goto-the-links-href" action.
单击仅触发单击事件/事件,而不是实际的“goto-the-links-href”操作。
You have to write your own handler and then your $('#myAnchor').trigger('click');will work...
您必须编写自己的处理程序,然后编写$('#myAnchor').trigger('click'); 将工作...
$("#myAnchor").click(function(event)
{
var link = $(this);
var target = link.attr("target");
if($.trim(target).length > 0)
{
window.open(link.attr("href"), target);
}
else
{
window.location = link.attr("href");
}
event.preventDefault();
});
回答by aki
<a href="#" id="myAnchor">Click me</a>
<script type="text/javascript">
$(document).ready(function(){
$('#myAnchor').click(function(){
window.location.href = 'index.php';
});
})
</script>
回答by polkovnikov.ph
Add onclick="window.location = this.href"
to your <a>
element. After this modification it could be .click()
ed with expected behaviour. To do so with every link on your page, you can add this:
添加onclick="window.location = this.href"
到您的<a>
元素。在此修改后,它可以按.click()
预期的行为进行编辑。要对页面上的每个链接执行此操作,您可以添加以下内容:
<script type="text/javascript">
$(function () {
$("a").attr("onclick", "window.location = this.href");
});
</script>
回答by Saumil
I tried few of the above solutions but they didn't worked for me. Here is a link to the page which worked for me automatically click a link
我尝试了上述几种解决方案,但它们对我不起作用。这是对我有用的页面的链接,自动单击链接
Above link has many solutions and here's the one which worked for me,
上面的链接有很多解决方案,这是对我有用的一个,
<button onclick="fun();">Magic button</button>
<!--The link you want to automatically click-->
<a href='http://www.ercafe.com' id="myAnchor">My website</a>
Now within the <script>
tags,
现在在<script>
标签内,
<script>
function fun(){
actuateLink(document.getElementById('myAnchor'));
}
function actuateLink(link)
{
var allowDefaultAction = true;
if (link.click)
{
link.click();
return;
}
else if (document.createEvent)
{
var e = document.createEvent('MouseEvents');
e.initEvent(
'click' // event type
,true // can bubble?
,true // cancelable?
);
allowDefaultAction = link.dispatchEvent(e);
}
if (allowDefaultAction)
{
var f = document.createElement('form');
f.action = link.href;
document.body.appendChild(f);
f.submit();
}
}
</script>
Copy paste the above code and click on clicking the 'Magic button'
button, you will be redirected to ErCafe.com
.
复制粘贴上面的代码并单击单击'Magic button'
按钮,您将被重定向到ErCafe.com
.
回答by yohan.jayarathna
I had similar issue. try this $('#myAnchor').get(0).click();
this works for me
我有类似的问题。试试这个$('#myAnchor').get(0).click();
对我有用
回答by Mikhail
If you are using jQuery, you can do it with jQuery.trigger
http://api.jquery.com/trigger/
如果你使用 jQuery,你可以使用jQuery.trigger
http://api.jquery.com/trigger/
Example
例子
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.3.js"></script>
</head>
<body>
<a id="foo" onclick="action()"></a>
<script type="text/javascript">
function action(){
window.location.replace("http://stackoverflow.com/q/9081426/5526354")
}
$("#foo").trigger("click");
</script>
</body>
</html>
回答by Venkat
Try this for compatibility;
试试这个以获得兼容性;
<script type="text/javascript">
$(function() {
setTimeout(function() {
window.location.href = $('#myAnchor').attr("href");
}, 1500);
});
</script>