0

URLに文字列が含まれている場合に、jQueryを使用してボタンクリックをシミュレートする方法があるかどうか疑問に思っていますか?

私のページにアクセスすると、アンカーがURLを通過しますが、スクロールパスプラグインを使用しているため、ユーザーをこのアンカーに直接誘導することはできません。そのため、クリックされているナビゲーションリンクをシミュレートしたいと思います...

これは可能ですか?

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

3 に答える 3

1

リダイレクトという意味で、アンカーのクリックをシミュレートすることはできないと思います。iPadではサポートされていないため、広くサポートされていないことをご存知でしょうか。window.locationただし、同様の方法でを変更することもできます。clickまた、手動でトリガーする可能性のあるアンカーにバインドされた追加のイベントがあるかどうかにも注意する必要があります。

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

ハッキーオプション

免責事項...これはChrome以外のブラウザではテストされていません。

nbrookesと話し合った後、クリックイベントをトリガーしてシミュレートできることがわかりましたが、リンクをクリックするのではなく、アンカー内の画像をクリックすることによってです。これにより、イベントがバブルアップし、ユーザーがクリックしたかのように実際にクリックイベントがトリガーされます。

jsFiddleコード

$(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>'); 
    });
});
于 2013-02-18T13:39:02.243 に答える
0

Yes you are correct it is possible to explicitly call click for a button

$("#other").click(function() {
   $("#target").click();
});

refer http://api.jquery.com/click/

Fiddle

于 2013-02-18T13:40:34.270 に答える
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');
        }
    });
});
于 2013-02-18T14:01:10.437 に答える