0

我正在通过以下代码打开 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;
    });
4

2 回答 2

1

你是这个意思?

if (!$dialog.dialog("isOpen")){
    $dialog.dialog("open");    
}
于 2012-07-04T12:41:54.820 回答
1

你为什么不这样做modal :true

这样用户就不会在后台单击任何内容,因此无需设置条件,因为您的对话框只会打开一次。我想这就是你想要的

var $dialog = $('<div>',{title:'Email'}).dialog({
            autoOpen: false,
            resizable: true,
            modal :true,
            width: 500
        });
于 2012-07-04T12:43:17.553 回答