しばらくの間jqueryダイアログを使用していましたが、今では奇妙な動作を経験しています。
呼び出し:
$('#dialog-form').dialog({
autoOpen: false,
width: '700px',
modal: true,
hide: 'slide'
});
$('#dialog-form').dialog('option', 'buttons', {
'add' : {
text: labelAdd,
click: function() {
doadd = true;
if (typeof checkRow !== "undefined") { doadd = checkRow() };
if (doadd) { exec(); }
}},
'Cancelar': function() {$(this).dialog('close'); }
});
$("#dialog-form").dialog("open");
function exec() {
$('#dialog-form').dialog('close');
/* execute some remote code using ajax call*/
if (error) {
$('#dialog-form').dialog('open');
return false
}
return true;
}
ダイアログが正しく表示されません。「ui-widget-overlay」は表示されますが、ダイアログの内容は表示されません。
私が関数を呼び出すのは、2回のツリータイムです。
私が見ることができるのは、表示プロパティがnoneに設定されていることです。
結果のhtmlコード:
div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable" style="display: none; z-index: 1002; outline: 0px none; position: absolute; height: auto; width: 700px; top: 0px; left: 320.5px;" tabindex="-1" role="dialog" aria-labelledby="ui-dialog-title-dialog-form">
firebugを使用してディスプレイを手動でブロックするように設定しましたが、問題なく動作します。
ところで、「esc」をパルスすると、アニメーションがダイアログを隠しているのを見ることができます。
div コンテンツの表示を js から設定できますか? または、ダイアログを別の方法で開いたり閉じたりする必要がありますか?
助けてくれてありがとう。
アントニオ