javascript - UI 对话框在使用 jQuery 的 setTimeout 中不起作用

标签 javascript jquery jquery-ui jquery-ui-dialog settimeout

我想在 10 秒后触发一个对话框,这非常简单..或者我是这么想的:-)

function showPopup() {
    $( "#emailPopup" ).dialog({autoOpen:false});
    //alert('Dialog shown');
}
$( "#emailPopup" ).dialog("open");
$( "#emailPopup" ).dialog("close");

$(document).ready(function() {
    $( "#emailPopup" ).dialog({autoOpen:false});

    window.setTimeout(function(){
        showPopup();
    }, 4000);

    jwplayer('videoBox').setup({
        flashplayer: '<?php echo asset_url(); ?>swf/player.swf',
        file: 'http://www.youtube.com/watch?v=Oj8CwmP_Jm4',
        height: 329,
        width: 540,
        events:{
            onBeforePlay:function(){
                $('#videoTitle').hide();
                $('#videoReplay').hide();
            },
            onPlay:function(){
                videoStarted = true;
                clearTimeout(popTO);
            },
            onComplete:function(){
                home.flashGetStarted();
                $('#videoReplay').show();
            }
        },
        plugins: 'fbit-1'
    });
});

当我运行代码 showPopup IS run 时,我可以使用 Firebug 中的调试来验证这一点,但是调用对话框后,我仍然没有看到任何对话框。如果我在 setTimeout 之外直接调用对话框,它会起作用......但在内部,这是不行的。

最佳答案

为了在对话框上使用open方法,您首先需要初始化对话框。

$( "#emailPopup" ).dialog({autoOpen:false}); 

function showPopup() {
     $( "#emailPopup" ).dialog("open"); 
     //alert('Dialog shown');
}


window.setTimeout(function(){
    showPopup();
}, 4000);

演示:http://jsfiddle.net/QtkBL/

关于javascript - UI 对话框在使用 jQuery 的 setTimeout 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14446982/

相关文章:

javascript - 在 IE 中显示选择选项的值

javascript - 未触发可排序句柄

javascript - 永远在后台运行peerjs服务器

jquery - Internet Explorer 7 jquery 幻灯片布局

javascript - 使用ajax请求的结果作为变量

jquery - 当鼠标悬停在 ul 中时访问 li 的 rel 值,id 为 mainmenu3

javascript - 带有 Bootstrap 布局的 jQuery UI Draggable

jquery - 使用 jquery modal box 和 ajax 显示单元格表中的值

javascript - 以编程方式创建一个新对象

javascript - 如何在移动浏览器中将按钮返回到非事件状态