1

このYouTubeビデオをjQueryダイアログに埋め込んでいます。ダイアログは次のように作成されます。

$(function() {
    $.prepare_dialog2 = function() {
        $('body').append('<div class="dlgVid"></div>');
        $('.dlgVid').dialog({ autoOpen: false,  modal: true, position: ['center',100], resizable: false, width: 640 });
    }
    $.dlgVid = function(url,ttl) {
        $.ajax({
            type: 'POST', url: url,
            success: function(data) { $('.dlgVid').dialog('open').dialog('option','title',ttl).html(data);},
            error: function() { alert('Oops! An error occured. Please try again or contact us if the problem persists.');}
        });
    }

    $.prepare_dialog2();    
});

関数を使用して呼び出され$.dlgVidます。ダイアログウィンドウには、クリックすると次のようにダイアログを閉じる閉じるリンクがあります。

$('.dlgCloser').live('click',function(){
    $('.dlgVid').dialog('close');
});

問題は、ダイアログを閉じると、ビデオが引き続き再生されることです。私はそれを止める必要があります。私はこれを試しましたが、うまくいきませんでした(ビデオがまだ再生されているため、音声が聞こえます):

$('.dlgCloser').live('click',function(){
    $('.dlgVid').dialog('destroy');
    $.prepare_dialog2();
});

再生を停止する方法、または破棄が DOM からダイアログを削除しない理由はありますか?

4

1 に答える 1

0

この破壊は実際にそれを隠しているので、まだ再生されていると思います。これを試して:

$('.dlgCloser').live('click',function(){
    $('.dlgVid').remove();
});

これで問題が解決する可能性がありますが、これにより、次のすべてのインスタンスも削除されます。.dlgVid

また、 を使用すること.live()は、jQuery ライブラリから廃止されています。を使用する必要があります.on()

于 2013-01-04T00:03:24.960 に答える