2012-11-21 33 views
0

我使用这个dialog box 我宁愿问我的问题jsfiddle但我没有它在jsfiddle中工作。 所以我在这里放一个demo将风格赋予模态对话框

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

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

回答

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 
}); 

- 而不是jQuery.ready的当量(jQuery的替代body.onload您正在使用)

而且, visibility:hidden使用display:none;

http://jsfiddle.net/97LXc/5/此演示(无网址=对话框)。

http://jsfiddle.net/97LXc/7/ URL =对话框仿拟

UPD 那么,一旦你已经在服务器根据URL填充onload="javascript:showdialog()",不需要测试网址上的客户像我这样做。只是onload打印

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

右后showDialog定义 代替

+0

非常感谢你。但我必须使用' Tahtakafa

+0

就这样做。我猜你有这样的东西:''。只要移动,如果小的鞋面。并放在showDialog定义之后。这与jQuery本身无关 –

1

您应该使用display:none而不是visibility:hidden,因为可见性会使您的元素不可见。你也可以把你的setTimeout放在任何你想要的位置,这取决于你什么时候开始计数。准备好了吗?在window.load之后?等

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

http://jsfiddle.net/mQRVp/