【发布时间】:2014-02-17 19:37:03
【问题描述】:
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 框架上顺利运行 [无需刷新]?
预计到达时间:
似乎这可以追溯到insertBefore() 方法的新方法。引用the documentation:
在 jQuery 1.9 之前,附加到单个元素的情况没有创建 新的集合,而是返回了原来的集合,这使得它变得困难 在与未知数一起使用时可靠地使用 .end() 方法 元素的数量。
...但 v1.9 不存在此问题,因此可能不存在。
【问题讨论】:
标签: jquery jquery-ui jquery-ui-dialog