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()
方法的新方法。引用文档:
在 jQuery 1.9 之前,追加到单元素的情况不会创建一个 新集,但返回原始集,这使其变得困难 在与未知一起使用时可靠地使用 .end(( 方法 元素数。
。但是 v1.9 不存在这个问题,所以也许不存在。
这是我添加到脚本中以禁用此行为的内容。
jQuery.ui.dialog.prototype._moveToTop = function(event, silent) {
return true;
};
我的问题