ajaxリクエストを使って自動リフレッシュするページを作成しました。このページには多くのモーダルダイアログボックスがあります。jQuery UI ajaxリフレッシュ後に変わったダイアログ
私の問題は、最初の時間ページが読み込まれ、すべての作品が完璧だということです。しかし、それがajaxを介してリフレッシュされるとき、ダイアログボックスはautoOpen: false
とmodal: true
を無視します。なぜ私は分かりませんか?ダイアログが作成され、このようになりますされているASPでページの読み込み中に
var intval;
var xmlhttp;
$('.ui-dialog').dialog({
open: function(event, ui) {
stopTimer();
},
close: function(event, ui) {
startTimer();
}
});
function startTimer() {
intval = setInterval('ajaxRefresh()', 15000);
};
function stopTimer() {
clearTimeout(intval);
if (xmlhttp) xmlhttp.abort();
};
function isDialogOpen() {
var value = false;
$('.ui-dialog').each(function() {
if ($(this).dialog('isOpen') == true) value = true;
});
return value;
};
function ajaxRefresh() {
xmlhttp = $.ajax({
url: 'site.asp',
data: {
tab: 'hi',
p: 's',
a: 'open',
c: 'some',
h: 'thing'
},
beforeSend: function() {
stopTimer();
$('#timerimg').attr('src', 'img/icons/loading.gif');
},
error: function(xhr, thrownError) {
if (xhr.status !== 0) alert(xhr.status + ' - ' + thrownError);
},
success: function(result) {
if (!isDialogOpen()) $('body').html(result);
},
complete: function() {
$('#timerimg').attr('src', 'img/icons/stop.gif');
}
})
};
$(document).ready(function() {
startTimer();
});
:作成されたどのように多くのダイアログ
$('#close1').dialog({
modal: true,
draggable: false,
resizable: false,
autoOpen: false,
width: 400,
buttons: {
'close': {
text: 'Nej',
click: function() {
$(this).dialog('close');
}
},
'submit': {
text: 'Ja',
click: function() {
window.location = 'page.asp?p=s&a=open&c=some&h=thing&n=close&id=1'
}
}
}
});
$('#close1Opener').live('click', function() {
$('#close1').dialog('open');
return false;
});
が依存:-(
は、JSコードを開始マイ
So:リクエストがあったときにページが更新されると、再び作成されたダイアログはすべてを無視します10およびmodal: true
...... draggable
、resizable
、width
およびbuttons
はまだまだ完璧です。
どうすればよいですか?
私たちは答えを持っているかもしれませんが、誰かにとっては細かいコードを読むのは難しいです。 –
編集に感謝します! :) – Behrens
jqueryとjquery-uiのどちらのバージョンを使用していますか? – JSuar