如果URL包含字符串,则使用jQuery模拟按钮单击

时间:2013-02-18 13:36:43

标签: javascript jquery html html5

我想知道当我的网址包含字符串时,是否可以使用jQuery模拟按钮点击?

当你访问我的页面时,一个锚点通过url传递,只有我不能直接将用户带到这个锚点,因为它使用了scrollpath插件,所以我想模拟一个被点击的导航链接......

这可能吗?

if(window.location.href.indexOf('group') > -1) {
    $('nav ul li a.group-btn').click();
};

3 个答案:

答案 0 :(得分:1)

我不认为你可以在重定向的意义上模拟一个锚点击;如果你能知道它没有被广泛支持,因为在iPad上是不可能的。但是,您可以以类似的方式更改window.location。您还需要记住是否有其他click事件绑定到您可能想要手动触发的锚点。

if (window.location.href.indexOf('group') > -1) {
    window.location = $('nav ul li a.group-btn').attr('href');
};

Hacky选项

免责声明......除了Chrome之外,未在任何浏览器中对此进行测试。

nbrookes交谈后,发现您可以触发并模拟点击事件,但不是通过点击链接,而是点击锚点中的图片。这导致事件冒泡,并实际触发点击事件,就像用户点击它一样。

jsFiddlecode

$(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();
});

参考http://api.jquery.com/click/

Fiddle

答案 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');
        }
    });
});