1

スクリーンショット : http://d.pr/i/A4Kv

これは私のダイアログコードです:

function popupbox(title,html,buttonTxt,buttonAction) {
  var buttons = {};
  if(buttonTxt != null) {
    buttons[buttonTxt] = buttonAction;
  }
  buttons['Cancel'] = function() {
    jQuery(this).dialog('destroy').remove();
  };
  var p = jQuery('<form class="dialoginnerbox">' + html  + '</form>');
  p.dialog({
    autoOpen: false,
    resizable: false,
    modal: false,
    width: 'auto',
    height: 'auto',
    maxHeight: 600,
    maxWidth: 980,
    title: title,
    close: function(event, ui){
        jQuery(this).dialog('destroy').remove();
    },
    buttons: buttons
  });
  p.dialog('open');
}

何か案は?

- - アップデート - -

返されたhtmlをダミーテキストに交換したところ、それが修正されました..だから、ポップアップに入れられているhtmlの何かがそれを2回開いています...

4

5 に答える 5

4

不正な形式のhtmlおよびインラインスクリプトタグにより、jqueryuiダイアログが複数のダイアログを開きます。

于 2012-05-22T00:38:33.937 に答える
1

jQueryUI ダイアログを使用。jQuery は、有効な html を不正な形式の html と見なす場合があります。私がこれを言う理由は、有効な html と有効な html コメントを使用してダイアログの html を ajax でロードしたからです。ajax で読み込まれた html から html コメントを削除するまで、二重のダイアログ ボックスが表示されました。例...

content.htm

<div id="myDialogContent">Alert!</div><!-- Here is an innocent looking comment -->

dialog.js

$.get( '/content.htm', function( html ){ 
    $( html ).dialog(); 
});

これにより、二重のダイアログが生成されます。HTML が HTML コメントで開始または終了する場合、同じダイアログの問題が発生します。唯一の回避策は、html コメントを削除するか、html テキストを別の html タグでラップすることです...

dialog.js

$.get( '/content.htm', function( html ){ 
    $( '<div>'+html+'</div>' ).dialog(); 
});

これにより、1 つのダイアログが生成されます。

于 2012-07-20T15:31:19.343 に答える