我想知道当我的 url 包含字符串时,是否有办法用 jQuery 模拟按钮单击?
当您访问我的页面时,通过 url 传递了一个锚点,只有我不能将用户直接带到这个锚点,因为它使用滚动路径插件,所以我想模拟一个被点击的导航链接......
这可能吗?
if(window.location.href.indexOf('group') > -1) {
$('nav ul li a.group-btn').click();
};
我想知道当我的 url 包含字符串时,是否有办法用 jQuery 模拟按钮单击?
当您访问我的页面时,通过 url 传递了一个锚点,只有我不能将用户直接带到这个锚点,因为它使用滚动路径插件,所以我想模拟一个被点击的导航链接......
这可能吗?
if(window.location.href.indexOf('group') > -1) {
$('nav ul li a.group-btn').click();
};
我不认为您可以在重定向的意义上模拟点击锚点;如果可以的话,我知道它没有得到广泛支持,因为它在 iPad 上是不可能的。但是,您可以window.location
以类似的方式更改。您还需要记住是否有其他click
事件绑定到您可能想要手动触发的锚点。
if (window.location.href.indexOf('group') > -1) {
window.location = $('nav ul li a.group-btn').attr('href');
};
免责声明...除 Chrome 外,未在任何浏览器中进行测试。
与nbrookes交谈后发现,您可以触发和模拟单击事件,但不能通过单击链接,而是通过单击锚点内的图像。这导致事件冒泡,并且实际上触发了点击事件,就好像用户点击了它一样。
$(function() {
// clicking this will trigger the click, but no re-direct
$('#trigger').click(function() {
$('#google').click();
});
// clicking this will actually re-direct... who knew!
$('#hack').click(function(e) {
e.preventDefault();
$('<img />').appendTo($('#google')).click();
});
$('a').click(function() {
$('#click-log').append('<li>#' + $(this).attr('id') + ' clicked</li>');
});
});
Click event will not do the navigation as you click on anchor.
See your solution in the jsFiddle example.
<div id='srcLinks'>
<a href='#group'>Success</a>
<a href='#'>Failure</a>
</div>
<a id='tgtLink' href='http://google.com' target='_blank'>target link</a>
and
$(function(){
$('#srcLinks a').click(function(e){
e.preventDefault(); // this will prevent default navigation using the href of the link
if($(this).attr('href').indexOf('group') > -1)
{
// If you want to open the link in new tab
window.open($('#tgtLink').attr('href'));
// If you want to open the link in same window
window.location = $('#tgtLink').attr('href');
}
});
});
Yes you are correct it is possible to explicitly call click for a button
$("#other").click(function() {
$("#target").click();
});