Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui jQueryUI对话框正在创建两个对话框_Jquery Ui_Dialog - Fatal编程技术网

Jquery ui jQueryUI对话框正在创建两个对话框

Jquery ui jQueryUI对话框正在创建两个对话框,jquery-ui,dialog,Jquery Ui,Dialog,截图: 这是我的对话框代码: function popupbox(title,html,buttonTxt,buttonAction) { var buttons = {}; if(buttonTxt != null) { buttons[buttonTxt] = buttonAction; } buttons['Cancel'] = function() { jQuery(this).dialog('destroy').remove(); }; var

截图:

这是我的对话框代码:

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使其打开两次…

格式错误的html和内联脚本标记导致jquery ui对话框打开多个对话框。

格式错误的html和内联脚本标记导致jquery ui对话框打开多个对话框。

带有jQueryUI对话框;在某些情况下,jQuery可以将有效HTML视为畸形HTML。我这样说的原因是我用有效的html和有效的html注释为对话框加载了html。在从ajax加载的html中删除html注释之前,我有两个对话框。例如

content.htm

<div id="myDialogContent">Alert!</div><!-- Here is an innocent looking comment -->
这将产生一个双重对话。如果html以html注释开始或结束,则会出现相同的对话框问题。唯一的解决方法是删除html注释或将html文本包装在另一个html标记中,如

dialog.js

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

这将产生一个对话框。

带有jQueryUI对话框;在某些情况下,jQuery可以将有效HTML视为畸形HTML。我这样说的原因是我用有效的html和有效的html注释为对话框加载了html。在从ajax加载的html中删除html注释之前,我有两个对话框。例如

content.htm

<div id="myDialogContent">Alert!</div><!-- Here is an innocent looking comment -->
这将产生一个双重对话。如果html以html注释开始或结束,则会出现相同的对话框问题。唯一的解决方法是删除html注释或将html文本包装在另一个html标记中,如

dialog.js

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

这将产生一个对话框。

此问题的解决方法是使用计数器:

var count = 0;
var $dialog = $('<div></div>') .dialog({ ...

autoOpen: false,
                        modal: true,
                        height: 625,
                        width: 500,
                        title: pagetitle
...
});

if (count > 0) {
                        $dialog.dialog("destroy").remove();
                        count = 0;
                    }
                    $dialog.dialog('open');
                    count++;
为我工作。。。对于对话框问题,但我在服务器上收到多个请求。。。
类似这样:当我第一次单击链接时,它会将信息发送到服务器。当我第二次单击而不刷新浏览器时,它会发送两次相同的信息。当我第三次单击时,会向服务器发送三个请求,依此类推……

此问题的解决方法是使用计数器:

var count = 0;
var $dialog = $('<div></div>') .dialog({ ...

autoOpen: false,
                        modal: true,
                        height: 625,
                        width: 500,
                        title: pagetitle
...
});

if (count > 0) {
                        $dialog.dialog("destroy").remove();
                        count = 0;
                    }
                    $dialog.dialog('open');
                    count++;
为我工作。。。对于对话框问题,但我在服务器上收到多个请求。。。 类似这样:当我第一次单击链接时,它会将信息发送到服务器。当我第二次单击而不刷新浏览器时,它会发送两次相同的信息。当我第三次单击时,会向服务器发送三个请求,以此类推

函数显示对话框{if$'。对话框{u包装器.length{ 回来 }

$('<div class="dialog_wrapper"</div>').dialog({
    autoOpen: true,
    modal: true,
函数显示对话框{if$'。对话框{u包装器.length{ 回来 }

$('<div class="dialog_wrapper"</div>').dialog({
    autoOpen: true,
    modal: true,

如果您将html包装在一个标记中,它可能会清除它。 html中包含div可能会导致每个div都有一个对话框,除非上面有一个层:

这对我不起作用:

<hr /> blah blah blah 
<h3>blahblahtitle</h3> 
<div id=somestufffirst>here's the stuff</div> 
<div id=someotherstuff>here's some more stuff</div>
但这确实:

<div>
<hr /> blah blah blah 
<h3>blahblahtitle</h3> 
<div id=somestufffirst>here's the stuff</div> 
<div id=someotherstuff>here's some more stuff</div>
</div>

如果您将html包装在一个标记中,它可能会清除它。 html中包含div可能会导致每个div都有一个对话框,除非上面有一个层:

这对我不起作用:

<hr /> blah blah blah 
<h3>blahblahtitle</h3> 
<div id=somestufffirst>here's the stuff</div> 
<div id=someotherstuff>here's some more stuff</div>
但这确实:

<div>
<hr /> blah blah blah 
<h3>blahblahtitle</h3> 
<div id=somestufffirst>here's the stuff</div> 
<div id=someotherstuff>here's some more stuff</div>
</div>

我在popupbox中放置了一个警报,它出现了一次。然后我在对话框的打开事件中放置了一个警报,它出现了两次。出于某种原因,popupbox被调用了一次,但创建了两个对话框…我无法在您的小提琴上重新创建此警报,因为我在popupbox中放置了一个警报,它出现了一次。然后我在dialo的打开事件中放置了一个警报它出现了两次。由于某种原因,popupbox被调用了一次,但创建了两个对话框…我无法在你的小提琴上重新创建它