<div id="subNav-Requests" class="suit-sub-nav" style="">
<ul class="page-container">
<li>
<a class="navLink0" href="/MyApp/reporting/list/data.do">
<span>Report Data</span>
</a>
</li>
</ul>
</div>
我有一个这样的代码。我正在尝试模拟单击'Report Data'
。我正在尝试的是
var nav = 'div#subNav-' + mainNavId; //results in 'div#subNav-Requests'
$(nav+' a.navLink0').trigger('click');
没有错误,什么也没发生。我也试过这个
$('a.navLink0').trigger('click');
同样的效果。我必须选择subNav-Requests
,因为还有更多类似的,例如subNav-Reports
、subNav-Allergies
等,它们具有相同的结构,但内部有许多navLinks
。
在元素上调用click只会执行附加到该元素的任何事件处理程序。它不会将浏览器发送到标记的href。要做到这一点,我能想到的最好的办法是:
var href = $('a.navLink0').attr('href');
window.location.href = href;
这符合你的需要吗?
请尝试$('a.navLink0', nav).click();
据我所知,你无法模拟实际点击链接,你所做的只是触发点击事件,但这还不够。
您可以通过为事件设置侦听器
$('a.navLink0').click(function() {
window.location = $(this).attr("href");
});
然后触发点击事件,但你为什么要这样做?重定向不是更适合你的目的吗?
window.location = $('a.navLink0').attr("href");