Следующий код - довольно простой и полный JQuery Dialog. Все работает.JQuery Dialog() не открывается после закрытия
Проблема заключается в том, как указано в названии в js1.js: (см свой комментарий)
Он всегда пытаться загрузить страницу по телефону horsedlgcontainer.load('page2.html');
никогда не попадает в else horsedlg.dialog('open');
заявление.
Любая идея, пожалуйста? Большое спасибо!
page1.html ...
<!DOCTYPE html>
<head>
<link href="Site.css" rel="stylesheet" type="text/css" />
<link href="jquery-ui-1.8.21.custom.css" rel="Stylesheet" type="text/css" />
<script src="jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="jquery-ui-1.8.21.custom.min.js" type="text/javascript"></script>
<script src="js1.js" type="text/javascript"></script>
</head>
<body>
<div id="horse-link">
[<a id="horse-link-show-dialog">Click Me</a>]
</div>
<div id="horse-link-dialog-container"></div>
</body>
page2.html ...
<script src="js2.js" type="text/javascript"></script>
<div id="horse-dialog" title="Horse!">
Q: When is a horse not a horse?<br />
A: It depends, when a white horse is not a horse.<br />
</div>
js1.js ...
$(document).ready(function() {
var horselnk = $('#horse-link'),
horsedlg = $('#horse-dialog'),
horsedlgcontainer = $('#horse-link-dialog-container'),
showdlgbtn = $('#horse-link-show-dialog');
$.ajaxSetup({ cache: false });
showdlgbtn.click(showHorseDialog);
function showHorseDialog() {
if (horsedlg.length==0)
horsedlgcontainer.load('page2.html');
else //to improve performance, open it again, don't load the same page
horsedlg.dialog('open'); //Why never come here?!?
}
});
js2.js ...
$(document).ready(function() {
var horsedlg = $('#horse-dialog'),
horselnk = $('#horse-link');
horsedlg.dialog({
modal: true, autoOpen: true, resizable: false,
height: 500, width: 350, closeOnEscape: true,
show: {effect:'puff',percent:150,duration:250},
hide: {effect:'puff',percent:110,duration:250}
});
});
+1 Это именно то, что я имел в виду в своем ответе, - но твоя легче читать !!!! – ManseUK
Спасибо за кучи за помощь ребята – Tom
Cool. «только оценивая horsedlg = $ ('# horse-dialog') один раз, и до загрузки содержимого« Это поражает гвоздь на голове! Спасибо за функцию Отложен(). У меня было что-то подобное раньше ... Как вы думаете, это достаточно хорошо? Var loading = $ ('# load-overlay'); horsedlgcontainer.hide(); loading.show(); horsendlgcontainer.load ('js2.js', Функция() { loading.hide(); horsedlgcontainer.show(); }); – Tom