如何使用jQuery以编程方式触发对链接的点击?


73

如何使用jQuery以编程方式触发对链接的点击?


1
请注意,使用javascript将该恶意软件标记为恶意网站...单击用户是一件非常不光彩的事情
Populus

有合法的用例。如果用户已经单击其他东西来触发涉及此单击的过程,并且用户了解发生了什么,那么我看不到问题。
安德鲁·科斯特

Answers:



54

如果您有锚链接:

<a id="my_link_id" href="something">My Link</a>

如其他答案所述,它将失败。调用.eq和.trigger('click')对我不起作用,但这可以:

$('#your_link_id').get(0).click();

在我的特定情况下,我已经以编程方式为锚的href分配了Blob网址。


5
在尝试了多种方法以编程方式单击跨度后,这是唯一对我有用的方法。
LjCode

2
谢谢。许多年后,这是一个最小的救星。
11teenth

1
这是唯一为我工作的人。.trigger("click")多次执行click事件,我将收到错误消息:Uncaught RangeError:超出最大调用堆栈大小
PouncingPoodle

谢谢。.trigger("click")我也没用 这是.get(0).click();:)
yohan.jayarathna'4

1
.click()将调用您定义的任何jQuery事件处理程序。 .get(0)返回DOM元素,然后可以调用的click方法(与jQuery不相关)。
杰格


15
$('#your_link_id')[0].trigger('click');

因为jQuery返回一个数组,所以我们是必需的,我们无法触发对多个事件链接的点击。您只需定位一个元素


4
实际上,由于您通过指定[0]使用本机元素,因此将引发错误。要对集合中的特定项目使用jQuery方法,请使用诸如.eq(0)或.first()之类的过滤器方法,或将整个内容包装在另一个$()中。例如:$('#your_link_id')。eq(0).trigger('click')
Marcy Sutton

3
有趣的是,Marcy的解决方案对我不起作用,而Sandeep的解决方案却对我不起作用。由于某些原因,$(“#myDivIdentifier a”)。eq(0)仍返回一个由1组成的数组。$(“#myDivIdentifier a”)[0]给我一个可以被“ click()”修饰的项目。
Martin Greenaway 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.