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被调用了一次,但创建了两个对话框…我无法在你的小提琴上重新创建它