我通过以下代码打开jQuery Dialog。这里的问题是当我打开它并再次点击所以它仍然是第二次和第三次打开。
如果它还没有打开,我需要打开一次。
$('.view_full_email').live('click',function(){
var $tr = $(this).closest('tr');
var subject = $tr.children('td:eq(2)').text(),
from = $tr.children('td:eq(3)').text(),
to = $tr.children('td:eq(4)').text(),
cc = $tr.children('td:eq(5)').text(),
bcc = $tr.children('td:eq(6)').text(),
mesg_body = $tr.children('td:eq(7)').text();
var $dialog = $('<div>',{title:'Email'}).dialog({
autoOpen: false,
resizable: true,
width: 500
});
var email_data = "<table><tr><td><b>Subject :</b>"+ subject +"</td></tr><br/><tr><td><b>From :</b> "+ from +"</td></tr><tr><td><b>To :</b> "+ to+"</td></tr><tr><td><b>CC :</b> "+ cc+"</td></tr><tr><td><b>BCC : </b> "+ bcc+"</td></tr><tr><td><b> Message Body :</b> <textarea rows='25' cols='100' readonly = 'readonly'>" + mesg_body+ "</textarea></td></tr></table>";
$('<div>').html(email_data).appendTo($dialog);
$dialog.dialog('open');
return false;
});
答案 0 :(得分:1)
你是说这个?
if (!$dialog.dialog("isOpen")){
$dialog.dialog("open");
}
答案 1 :(得分:1)
为什么不这样做modal :true
。
这样用户不会在后台点击任何内容,因此无需放置条件,因为您的对话框只会打开一次。我想这就是你想要的
var $dialog = $('<div>',{title:'Email'}).dialog({
autoOpen: false,
resizable: true,
modal :true,
width: 500
});