2012-07-04 92 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你有我想說的 –