jQuery Sortable - iFrame SRC不在DOM中

时间:2012-09-17 13:44:33

标签: jquery jquery-ui jquery-ui-sortable

我有与

类似的小部件/ portlet
<div id="100" class="portlets">
     <iframe src="widgets/widget1_iframe.html"></iframe>
</div>

在每个iFrame中是另一个iFrame。我可以添加多个小部件/ portlet并对它们进行排序。

我有一个脚本(对于每次更改)获取初始iFrame的SRC(在本例中为小部件/ widget1_iframe.html )和iFrame中的iFrame的SRC(在我的测试版本,它提醒用户)。

因此,使用之前的示例,假设我添加了一个新的类似

的内容
<div id="200" class="portlets">
     <iframe src="widgets/widget2_iframe.html"></iframe>
</div>
然后我决定将第二个移到第一个之上。我的脚本正确显示小部件/ widget2_iframe.html ,但之后在iframe中不显示iframe。然后它会正确显示小部件/ widget1_iframe.html 以及该iframe中的iFrame。

我做了一次检查,并且小部件/ portlet中的iFrame(在iframe中)不可用于DOM。

所以基本上,如果我有100个我添加并移动了一个的portlet,它会向我显示除了已经移动的小部件/ portlet的iframe中的iframe之外的所有正确信息。以下是可排序功能

停止事件
stop: function (event, ui) {
    var sortorder = '';
    $('.' + opts.columnClass).each(function () {
        var itemorder = $(this).sortable('toArray');
        sortorder += itemorder.toString();
    });

    var substr = sortorder.split(',');

    jQuery.each(substr, function () {
            $.post("process.php", {
                widget: $('div#' + this + ' div.widgetcontent iframe').attr("src"),
                iframe: $('div#' + this + ' div.widgetcontent iframe').contents().find('iframe').attr("src")

            }, function (data) {
                alert("Data Loaded: " + data);
            });

    });

基本上 - 没有为已移动的小部件/ portlet传递iFrame的值

1 个答案:

答案 0 :(得分:0)

我在1秒的stop: function(event, ui) {之后直接延迟,似乎将它排序