jquery sortable无法读取属性' top'

时间:2017-02-01 11:29:20

标签: javascript jquery jquery-ui draggable jquery-ui-sortable

我构建了拖放系统,但是当我尝试排序元素时,我得到了错误

  

未捕获的TypeError:无法读取属性' top'未定义的       at e。(匿名函数)。(匿名函数)._ mouseDrag(jquery-ui.min.js:12:536)       at e。(匿名函数)。(匿名函数)._ mouseDrag(jquery-ui.min.js:6:7983)       at e。(匿名函数)。(匿名函数)._ mouseStart(jquery-ui.min.js:12:191)       at e。(匿名函数)。(匿名函数)._ mouseStart(jquery-ui.min.js:6:7983)       at e。(匿名函数)。(匿名函数)._ mouseMove(jquery-ui.min.js:6:15443)       at e。(匿名函数)。(匿名函数)._ mouseMove(jquery-ui.min.js:6:7983)       在HTMLDocument.n._mouseCapture._mouseDistanceMet._mouseDelayMet._mouseMoveDelegate(jquery-ui.min.js:6:14949)       在HTMLDocument.dispatch(jquery-2.1.1.min.js:3:6404)       在HTMLDocument.r.handle(jquery-2.1.1.min.js:3:3179)

在我的HTML中我得到了很多'阻止' divs,都是空的。 我的代码:

$('#elements_Button').on('click', function(){
    var origin = 'sortable';
    //var $iframe = $('#courseBuilder_PageFrame');
    $('.card-element').draggable({
           helper: function(e) {
               return $('<div>').addClass('block').text($(e.target).text()));
           },
           containment:'body',
            iframeFix: true,
            connectToSortable:$('#courseBuilder_PageFrame').contents().find('.container').sortable({
                iframeFix: true
            }),
        //  revert: "invalid",
            start: function () {
                 origin = 'draggable';
             }
        });
    $('#courseBuilder_PageFrame').contents().find('.container').droppable({
        iframeFix: true,
        drop: function (event, ui) {
                 if (origin === 'draggable') {
                     ui.draggable.html(Course.getElementByName(ui.draggable.text()));
                     console.log(ui.draggable);
                     origin = 'sortable';
                 }
             }

        });
});

HTML:

<div class="row block card-content card-element ui-draggable ui-draggable-handle">
<span class="card-title activator grey-text text-darken-4">Header</span>

<div class="container ui-sortable ui-droppable">            
    <div class="row block card-content card-element ui-draggable ui-draggable-handle" style="display: block;">
        <div class="col l12 m12 s12 header2">                   
        <h1 class="4s-editable">C-40Ai Aircraft</h1>                
    </div>          
</div>
....

这里是jsfiddle http://jsfiddle.net/w9L3eorx/39/

我认为我的jquery版本不适合......

1 个答案:

答案 0 :(得分:0)

解决方案是使用最新版本的jquery-ui v1.12.1。