2012-07-04 91 views
0

我打开jQuery对话框,通过下面的代码。这里的问题是,当我打开它,并再次点击,所以它仍然打开第二次和第三次。jQuery对话框:如果它已经打开,不打开它?

如果它尚未打开,我需要打开它一次。

 $('.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; 
    }); 

回答

1

你为什么不这样做modal :true

这样用户不会点击背景中的任何东西,所以不需要放置条件,因为您的对话框只会打开一次。我猜这是什么ü想

var $dialog = $('<div>',{title:'Email'}).dialog({ 
      autoOpen: false, 
      resizable: true, 
      modal :true, 
      width: 500 
     }); 
1

你说这个?

if (!$dialog.dialog("isOpen")){ 
    $dialog.dialog("open");  
} 
+0

我有每一行的多行网格有这个环节上,如果我在一个链接点击所以它会打开对话框多数民众赞成罚款,但该对话框会open.now当用户再次单击相同的链接用户已经clciked所以我希望没有相同的对话框open.hope你有我想说的 –