我必须使用嵌套的连接sortables和jQuery UI。这意味着任何可排序的任何可排序都可以丢弃。但是,我受到jQuery UI中的这个错误的影响:http://bugs.jqueryui.com/ticket/8180。简而言之,删除sortable之外的可排序引发异常:“Uncaught Error:HIERARCHY_REQUEST_ERR:DOM Exception 3”。
我有什么选择?
答案 0 :(得分:0)
虽然尚未解决此问题,但您可以尝试在分配innermostContainer的值之前在可排序窗口小部件的_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;
}
}
}
对于可以连接并放置在其他可排序内的可排序的情况,innermostContainer被确定为当前选择的可排序。然后将占位符附加在其中。当在mouseStop上调用_clear()并调用“this.placeholder.before(this.currentItem)”时,currentItem将在其自身之前插入。这会导致HIERARCHY_REQUEST_ERR:DOM异常3。
简单检查,如果currentItem是容器,则不允许将placeholder附加到currentItem。