在销毁之后打开Jquery对话框

时间:2012-10-23 17:21:01

标签: javascript jquery jquery-ui dialog jquery-ui-dialog

我在jquery对话框中显示了一个youtube视频,因此如果在对话框窗口关闭时正在播放,它将继续在幕后播放。

我做的结果就是在关闭时破坏窗口:

    $("#gallery_reel").dialog({
            autoOpen: false,
            width: 540,
            close: function() {
                $(this).dialog('destroy');
            }
    });

但是一旦对话框被销毁,除非我刷新页面,否则它不会再打开。如何重新打开对话框?

3 个答案:

答案 0 :(得分:2)

我建议只使用close函数来停止youtube video,但如果你坚持使用其他命令而不是销毁,请尝试以下方法:

  

非首选(将html复制到新清空的对话框中)

$("#gallery_reel").dialog({
    autoOpen: false,
    width: 540,
    close: function() {
        var inrHTML = $(this).html();
        $(this).empty().html(inrHTML);
    }
});
  

应该是更好的方法(基于大多数“嵌入youtube”视频的想法都在iframe中,我认为

$("#gallery_reel").dialog({
    autoOpen: false,
    width: 540,
    close: function() {
        $(this).find("iframe").get(0).stopVideo();
    }
});

答案 1 :(得分:0)

停止Youtube视频:

$('#playerID').get(0).stopVideo();

来自Stop a youtube video with jquery?

答案 2 :(得分:0)

这是因为当你“破坏”时,你会弹出jQuery堆栈的映射var。

varname = new $("#gallery_reel").dialog(.....); 

会将其弹回到堆栈

这里的问题是你需要销毁或只是关闭对话框。

在离开页面而不是关闭对话框时正确使用变量和清理可以解决此问题