1

我是 JQuery 的新手,所以请原谅明显的 noobish 标题。我真的不知道如何描述这一点,但基本上,我在打开一个对话框后看到的萤火虫有很多:

<div class="ui-dialog ui-widget ui-widget-content ui-corner-all " style="display: none; position: absolute; overflow: hidden; z-index: 1006; outline: 0px none; height: auto; width: 400px; top: 137px; left: 436px;" tabindex="-1" role="dialog" aria-labelledby="ui-dialog-title-3">

我至少可以看到其中的 100 个,每次打开对话框时都会看到一个。

有没有办法阻止这种情况?我注意到我打开的对话框越多,系统变得越慢。我不确定这是不是这个原因,但我很怀疑。

4

1 回答 1

0

创建一个 jquery ui 对话框会带来很多开销,jquery 会使用这些开销来进行各种对话,例如在所有方向上调整大小、插件转换的对话框本身(供以后重用)等等,所以如果你每次都需要创建对话框也摧毁他们。一旦对话框上的关闭事件完成,您需要销毁它们,您可以通过订阅对话框的关闭事件来列出。

像这样的东西:

$(':input').on('click', function () {
    $('<div  title="Basic dialog" style="display:none">  <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the     x icon.</p></div>').dialog({
        close: function (event, ui) {
            $(this).dialog('destroy'); //destroy it  on every close
        }
    });
});

演示

于 2013-09-28T02:51:32.257 回答