0

我必须使用带有 jQ​​uery UI 的嵌套连接排序。这意味着任何可排序的对象都可以丢弃在任何其他可排序对象中。但是,我受到 jQuery UI 中的这个错误的影响:http: //bugs.jqueryui.com/ticket/8180。简而言之,将可排序对象放在可排序对象之外会引发异常:“未捕获的错误:HIERARCHY_REQUEST_ERR:DOM 异常 3”。

我有哪些选择?

4

1 回答 1

0

虽然尚未解决此问题,但您可以尝试在分配最内层容器的值之前在可排序小部件的 _contactContainers() 中添加验证。

    for (var i = this.containers.length - 1; i >= 0; i--){

        // never consider a container that's located within the item itself
        if($.contains(this.currentItem[0], this.containers[i].element[0]))
            continue;

        if(this._intersectsWith(this.containers[i].containerCache)) {

            // if we've already found a container and it's more "inner" than this, then continue
            if(innermostContainer && $.contains(this.containers[i].element[0], innermostContainer.element[0]))
                continue;

            if (this.currentItem[0] == this.containers[i].element[0]) {
                continue;
            }

            innermostContainer = this.containers[i];
            innermostIndex = i;

        } else {
            // container doesn't intersect. trigger "out" event if necessary
            if(this.containers[i].containerCache.over) {
                this.containers[i]._trigger("out", event, this._uiHash(this));
                this.containers[i].containerCache.over = 0;
            }
        }

    }

在可以连接并放置在其他可排序对象中的可排序对象的情况下,最内层的容器被确定为当前选定的可排序对象。然后将占位符附加在其中。当在 mouseStop 上调用 _clear() 并调用“this.placeholder.before(this.currentItem)”时,currentItem 被插入到它自己之前。这会导致 HIERARCHY_REQUEST_ERR: DOM Exception 3。

简单检查,如果 currentItem 是容器,则不允许将占位符附加到 currentItem。

于 2013-06-14T13:08:56.420 回答