jQuery:如何触发锚链接的点击事件
我有一个锚链接
<a id="myanchor" href="http://google.com" target="_blank">Google</a>
如何以编程方式在新标签中打开href目标?
尝试以下操作:
$("#myanchor")[0].click()
就如此容易。
调用click
事件(不做redirect)和导航到href
位置是有区别的。
导航:
window.location = $('#myanchor').attr('href');
在新标签或窗口中打开:
window.open($('#myanchor').attr('href'));
调用click事件(调用javascript):
$('#myanchor').click();
即使这篇文章是caput,我认为这是一个很好的演示,可以用jQuery来运行,也就是说, click()
实际上是点击一个元素,而不是发送一个点击事件在DOM中冒泡。 假设你真的需要模拟一个点击事件(例如为了testing目的等)如果是这样的话,假设你使用的是一个现代浏览器,你可以使用HTMLElement.prototype.click
( 在这里也可以查看方法细节作为W3规范的一个链接 )。 这应该适用于几乎所有的浏览器,尤其是在处理链接的情况下,如果需要,可以很容易地回退到window.open
。
var clickLink = function(linkEl) { if (HTMLElement.prototype.click) { // You'll want to create a new element so you don't alter the page element's // attributes, unless of course the target attr is already _blank // or you don't need to alter anything var linkElCopy = $.extend(true, Object.create(linkEl), linkEl); $(linkElCopy).attr('target', '_blank'); linkElCopy.click(); } else { // As Daniel Doezema had said window.open($(linkEl).attr('href')); } };
您无法以编程方式打开新标签页,这是浏览器function。 您可以在外部窗口中打开链接。 看看这里
window.open($('#myanchor').attr('href')); $('#myanchor')[0].click();
$(":button").click(function () { $("#anchor_google")[0].click(); });
- 首先,如果没有给出id,则按types查找button(使用“:”)。
- 其次,通过id或其他标签(如div和$(“#anchor_google”)[0])返回DOM对象来查找锚标签。