私は以下のようにポップアップを引き起こすボタンを持っています。私はポップアップでそれを表示するためにサーバー側からいくつかの情報を引き出します。問題は、サーバー側の情報をプルアップするのに時間がかかり、ダイアログが空になってから1〜2秒後に情報が表示されることです。気に障る。サーバー側の情報が準備されているときだけダイアログを表示する方法はありますか?オープンイベントの前にjqueryダイアログを非表示にするには?
function openPopup(id)
{
$("#divPopup").dialog({
resizable: true,
height: 200,
width: 300,
modal: true,
title: 'Popup Title',
buttons: {
OK: function() {
//TODO
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
},
open: function (event, ui) {
// Can I hide the dialog popup before the info is ready?
populateInfo(id);
addDialogBGConfirm($(this).parent().css('z-index') - 1);
},
close: function (event, ui) {
removeDialogBGConfirm();
}
});
}
function populateInfo(id)
{
$.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
url: window.location.href + "/GetServerSideInfo",
data: "{'profileId': '" + id + "'}",
dataType: 'json',
success: function (res) {
// populate popup controls based on server side info
$('.pname').text(res.d[0]);
// ...
},
error: function (data, textStatus) {
alert('Error in calling method');
}
});
}
は何を求めていることをユーザーに促すことができ、よりよい方法でありますボタンを2回クリックするとポップアップが開きます(あるボタンをクリックすると開きます)。 – yogi
ありがとう!しかし、私はサーバー側の情報が準備が整う前にすべてのコントロールを非表示にしたい。私はディスプレイを置こうとしました:オープンの最初の行には何もありませんが、動作していないようです... – Deceleven
ajaxの完了後にダイアログを開く方法は?私は実際に@yogiのソリューションをサポートしています。 –