2

リンクがクリックされるたびに開いて再生されるビデオプレーヤーがあり、2つのビデオが表示された後、提供された情報を評価できるフォームが表示されます。

私が抱えている問題は、ビデオが完成したときに表示される再生ボタンがあることです。私は現在、ビデオを削除するsetTimeoutを設定しており、そのオーバーレイがレートフォーム関数を実行します。ただし、再生ボタンをクリックした場合、setTimeoutはまだ実行中であり、ビデオの再生の途中で関数が実行されます。これが私のコードです:

ビデオオーバーレイを削除する

fnVideoOverlayOff = function () {

    jQuery('#video, #block, .video-closebtn').css('display', 'none');

}

JWプレイヤーコード

jwplayer('videoScreen').setup({
        flashplayer: '/assets/js/lib/player.swf',
        allowscriptaccess: "always",
        width:972,
        height:547,
        controlbar: "none",
        autostart: true,
        playlistfile: "/assets/videos/playlist.xml",
        events: {
            onPlaylistItem: function (event) {

                jQuery(document).idleTimer('destroy');

            },
                            onPLay: function (event) {

                            },
            onComplete: function (event) {

                setTimeout(function () {

                    fnVideoOverlayOff();

                }, 10000);

                var clickCount = 0;

                if(jQuery.cookie('clickCount') == 2) {

                    fnRateOverlayOn();

                    jQuery('#video, .video-closebtn').css('display', 'none');

                }
            }
        }
    });

fnVideoOverlayOff ();を強制終了します。再生ボタンがクリックされた場合

4

1 に答える 1

2

setTimeoutへの参照を保存し、clearTimeout()終了しないようにする場合は呼び出します。

fnVideoOverlayOffTimer = setTimeout(... 

// and later on when you want to "kill" it,

clearTimeout(fnVideoOverlayOffTimer);`

fnVideoOverlayOffTimer理想的には、グローバルスコープから外すためにどこかで宣言しますが、それはオプションです。

于 2013-02-20T16:14:58.653 に答える