我想知道当我的网址包含字符串时,是否可以使用jQuery模拟按钮点击?
当你访问我的页面时,一个锚点通过url传递,只有我不能直接将用户带到这个锚点,因为它使用了scrollpath插件,所以我想模拟一个被点击的导航链接......
这可能吗?
if(window.location.href.indexOf('group') > -1) {
$('nav ul li a.group-btn').click();
};
答案 0 :(得分:1)
我不认为你可以在重定向的意义上模拟一个锚点击;如果你能知道它没有被广泛支持,因为在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>');
});
});
答案 1 :(得分:0)
是的,你是对的,可以明确地点击按钮
$("#other").click(function() {
$("#target").click();
});
答案 2 :(得分:0)
单击锚点时,点击事件不会执行导航。
请参阅jsFiddle示例中的解决方案。
<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>
和
$(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');
}
});
});