在beforeStop()中使用revert导致错误 - 如何修复?

ear*_*efl 2 jquery jquery-ui-sortable nested-sortable

我有一个nestedSortable列表,其中我不允许嵌套具有相同名称的项目(可能是id,无论如何).我正在使用beforeStop()方法获取当前元素的名称及其父元素的名称(因为当它嵌套时,它获取表单:)

<ol class="sortable">
    <li><div id="1">Item</div>
        <ol>
            <li>
                <div id="2">Item</div>
            </li>
        </ol>
    </li>
</ol>
Run Code Online (Sandbox Code Playgroud)

请注意,我使用div元素作为句柄.我初始化nestedSortable的代码是

 $('ol.sortable').nestedSortable({
        disableNesting: 'no-nest',
        forcePlaceholderSize: true,
        handle: 'div',
        helper: 'clone',
        items: 'li',
        maxLevels: 5,
        opacity: .6,
        placeholder: 'placeholder',
        revert: 250,
        tabSize: 25,
        tolerance: 'pointer',
        toleranceElement: '> div',
        beforeStop: function(event, ui){ // disallows two elements with the same part number from nesting
            var thisName = ui.item[0].firstChild.innerHTML;
            var parentName = ui.item[0].parentElement.parentElement.firstChild.innerHTML;
            if (thisName == parentName){
                $(this).sortable('cancel');
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

这段代码可以禁止嵌套具有相同名称的项目,如果我控制台记录移动的元素及其祖父母,我可以看到我引用了正确的元素.但是,在调用sortable('cancel')后,我也得到以下控制台错误,这自然会炸掉IE:

未捕获的TypeError:无法调用null的方法'removeChild'

jquery-ui-1.8.12.custom.min.js
Run Code Online (Sandbox Code Playgroud)

d.widget._clear

jquery-ui-1.8.12.custom.min.js:269
Run Code Online (Sandbox Code Playgroud)

$ .widget.$.extend._clear

 jquery.ui.nestedSortable.js:305
Run Code Online (Sandbox Code Playgroud)

d.widget._mouseStop

jquery-ui-1.8.12.custom.min.js:237
Run Code Online (Sandbox Code Playgroud)

f.extend.speed.d.complete

jquery.js:4
Run Code Online (Sandbox Code Playgroud)

f.fx.step

jquery.js:4
Run Code Online (Sandbox Code Playgroud)

H

jquery.js:4
Run Code Online (Sandbox Code Playgroud)

f.extend.tick

jquery.js:4
Run Code Online (Sandbox Code Playgroud)

有人可以给我一些关于如何调试这个的提示吗?或者你会推荐另一种方式吗?我使用的是最新版本1.3.4和jQuery 1.7.1.

ear*_*efl 5

使用stop()而不是beforeStop().