0

我使用这个对话框, 我更愿意用jsfiddle问我的问题,但我没有在 jsfiddle 中工作。所以我在这里放了一个演示

如果我不在块中使用visibility:hidden;#dialog当 url 参数不等于 'dialog' #dialog div 时会显示在页面中。但只有在 url=dialog
如果我使用visibility:hidden;#dialog div 中的内容未显示时,它才必须显示。

另外,我希望它在页面加载 10 分钟后打开。我会放在哪里setTimeout

4

2 回答 2

1

您应该使用 display:none 而不是 visibility:hidden 因为可见性将使您的元素不可见。您也可以将 setTimeout 放在任何您想要的地方,具体取决于您希望它何时开始计数。dom准备好之后?在 window.load 之后?ETC

$(function(){ // this waits for dom to be ready
    setTimeout(showdialog,10000);
});

http://jsfiddle.net/mQRVp/

于 2012-11-21T16:49:25.103 回答
1

你需要这样的东西:

function showdialog() {
    $( "#dialog" ).dialog({width:500,height:240});
};

$(function() {
    var lockation = document.location.toString();
    if(lockation.indexOf("url=dialog", lockation.length - "url=dialog".length) !== -1)//check if url ends with 'url=dialog'
         setTimeout(showdialog, 1000);//call function with timeout
});

$(function(){...})- 相当于jQuery.ready(您正在使用的 body.onload 的 jQuery 替换)

此外,而不是visibility:hidden使用display:none;

http://jsfiddle.net/97LXc/5/演示(无 url=dialog)。

http://jsfiddle.net/97LXc/7/ url=对话框模仿

UPD 好吧,一旦您已经onload="javascript:showdialog()"根据 URL 在服务器上进行了填充,就无需像我那样在客户端上测试 url。只是代替onload打印

   $(function() {   
         setTimeout(showdialog, 1000);//call function with timeout
    });

showDialog定义之后

于 2012-11-21T16:51:24.213 回答