2010-12-10 46 views
0

我使用jQuery UI的对话框库,但是当我尝试关闭它,似乎已经在它下面几个相同的对话框说已经产生了,它需要几点击关闭它们。有时对话框中的按钮无响应。jQuery UI的对话框将不会关闭的第一次尝试,需要几次点击

 if (!($(clicked).attr("type")) || ($(clicked).attr("type") == "text")){ 
      newDialog("What Would You Like To Type Here ?", 
      "test"); 
      return false; 
     } 
function newDialog(mytitle, mycontent){ 
    var $dialog = $('<div id="myunique"></div>') 
     .html(mycontent) 
     .dialog({ 
      autoOpen: false, 
      modal: false,   
      title: mytitle, 
      width: 500 
     }); 
    $dialog.dialog('open'); 

    //return false; 
} 

回答

1

检查,看看是否已经创建$对话框如果没有,创建它。这样你只会创建一个对话框,而不是每次打开它时创建一个对话框。

var $dialog = null; 
function newDialog(mytitle, mycontent){ 
    if ($dialog != null){ 
     $dialog = $('<div id="myunique"></div>') 
      .html(mycontent) 
      .dialog({ 
       autoOpen: false, 
       modal: false,   
       title: mytitle, 
       width: 500 
      }); 
    } 
    $dialog.dialog('open'); 

    //return false; 
} 
3

你不应该在每次你想显示一个新的对话框div元素时创建一个新的对话框div元素。

相反,创建一个DIV将被用于您的对话框,并改变它的内容和知名度。

/电子邮件: (我今年有一个类似的问题,不幸的是,我不记得这个问题对我来说是什么,也不能在我的项目代码历史中找到它。不知何故修好了。据我所知无论是通过使用一个DOM元素,而不是建立新的,或再次删除它们。)

+0

事情取决于点击的元素,我需要一个不同的动作和选项的对话。 – KJW 2010-12-10 04:28:05

+0

然后你需要管理你需要显示的不同对话框的列表 - 不要重复使用同一个变量。 – 2010-12-10 04:35:17