1

我有类似的小部件/portlet

<div id="100" class="portlets">
     <iframe src="widgets/widget1_iframe.html"></iframe>
</div>

每个 iFrame 中都有另一个 iFrame。我可以添加多个小部件/portlet 并对其进行排序。

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

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

<div id="200" class="portlets">
     <iframe src="widgets/widget2_iframe.html"></iframe>
</div>

然后我决定将第二个移到第一个之上。我的脚本正确显示了widgets/widget2_iframe.html但随后 iframe 中的 iframe 没有显示任何内容。然后它会正确显示widgets/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 的值

4

1 回答 1

0

我在 1 秒后立即延迟stop: function(event, ui) {,这似乎对其进行了排序

于 2012-09-17T14:54:04.597 回答