0

現在のURLをチェックしてテキストを検索する単純なJQueryコードがあります。存在する場合は、コードを実行します。スイッチケースを使用しています。コードはFF、IEで機能しますが、Webkitブラウザー、Chrome、Safariでは機能しません。コードは次のとおりです。

注意:現在のURLの最後に#f3が含まれていると想定してください。

$(document).ready(function() {      

    var checkUrl = $(location).attr('href');

        switch (true) {

        case (checkUrl.search("#f1") > 0):
            //just focus on #f3 below
            break;

        case (checkUrl.search("#f2") > 0):
            //just focus on #f3 below
            break;

        case (checkUrl.search("#f3") > 0):
            //$(".jcarousel-next").trigger("click");
            $(".jcarousel-next").triggerHandler('click');

            break;

        default:
            false;

        }
});

これが行うべきことは、ページ上でクリックされているdivクラスをシミュレートすることです。".jcarousel-next"ChromeとSafariは何もしません(ページをロードするだけです)。Firefox、IEなどで動作します...

ソリューション担当者はいますか?

4

2 に答える 2

0

トリガーはすべてのブラウザで正常に機能します。問題はセレクターがクラスであるためだと思います。したがって、「jcarousel-next」が実行時に追加される場合は、後にハンドラーを追加する必要があります。

これは例であり、正常に機能します。最初のテキストは何もしません。3番目から2番目のレイズクリックイベント。3番目はクリックイベントがあります...

runnning .... http://jsfiddle.net/37dAj/

<div class="botton1">
    <h2>nothing</h2>
</div>

<div class="botton2">
    <h2>raise click event from botton3</h2>
</div>

<div class="botton3">
    <h2>click event</h2>
</div>​

$(document).ready(function () {
        $('.botton3').click(doSomething);
        $('.botton2').click(doTrigger);
    });

    function doTrigger() {
        $('.botton3').trigger('click');
    }

    function doSomething() {
        alert('boo!');
    }
于 2012-10-31T16:05:09.787 に答える
0

コードを更新し、必要なすべてのブラウザー(ie7、ie8、ie9、FF、Chrome、Safari)で動作するようになりました。これは、ケースの1つ(ケース2)に含まれるものの例です。

for(var i = 1; i <2; i ++){
setTimeout(function(){$( "。jcarousel-next")。click();}、700 * i);
}

forループは、クリックを遅らせるために、ある種の間隔で必要なコードを特定の回数実行します。そうしないと、ループが非常に速く発生し、表示されません。

提案してくれたすべての人に感謝します。

アブK。

于 2012-11-02T12:06:51.203 に答える