2

jQuery UI v1.10 似乎在页面上堆叠多个对话框时存在问题,当单击任何对话框时,它将刷新所有打开的对话框。

这里有一些小提琴。使用相同的代码:

HTML

<div id="div1" class='d' data-isrc='http://www.slashdot.org'>
</div>
<div id="div2" class='d' data-isrc='http://www.cnn.com'>
</div>

JS

var opts = {
    height: 200,
    width: 300,
    autoOpen: true,
    open: function(){
        var src = $(this).data("isrc"),
            $iframe = $("<iframe seamless='seamless' src='" + src + "'>");

        console.log(src);
        $(this).append($iframe);

    }
};
$("#div1").dialog(opts);

$("#div2").dialog(opts);

这个小提琴使用 jQuery 1.9.1 和 jQueryUI 1.9.2,并表现出我需要的样子:http: //jsfiddle.net/REmJb/

这个小提琴使用 jQuery 2.0.2 和 jQueryUI 1.10.3,并显示了问题:http: //jsfiddle.net/UBV4v/

如何使上述链接在较新的 jQuery 框架上顺利运行 [无需刷新]?

ETA: 似乎这可以追溯到该方法的新insertBefore()方法。引用文档

在 jQuery 1.9 之前, append-to-single-element 的情况不会创建新的集合,而是返回原始集合,这使得在与未知数量的元素一起使用时很难可靠地使用 .end() 方法。

...但是 v1.9 不存在此问题,因此可能不存在。

4

1 回答 1

2

这是我添加到脚本中以禁用此行为的内容。

jQuery.ui.dialog.prototype._moveToTop = function(event, silent) {
    return true;
};

我的问题

于 2014-02-17T11:37:03.760 回答