2017-09-15 30 views
1

我有div的,我必須使用網格進行排序,並且拖動 當我想他們理清我得到這個錯誤遺漏的類型錯誤:無法讀取屬性未定義的jQuery可拖動+排序的「替換」

> Uncaught TypeError: Cannot read property 'replace' of undefined 
>  at Function.camelCase (jquery-3.1.1.min.js:2) 
>  at Function.css (jquery-3.1.1.min.js:3) 
>  at r.fn.init.<anonymous> (jquery-3.1.1.min.js:3) 
>  at S (jquery-3.1.1.min.js:3) 
>  at r.fn.init.css (jquery-3.1.1.min.js:3) 
>  at HTMLDivElement.<anonymous> (jquery-asortable.js:55) 
>  at HTMLDivElement.dispatch (jquery-3.1.1.min.js:3) 
>  at HTMLDivElement.q.handle (jquery-3.1.1.min.js:3) 
>  at Object.trigger (jquery-3.1.1.min.js:4) 
>  at HTMLDivElement.<anonymous> (jquery-3.1.1.min.js:4) 

我用asortable因爲項目我都絕對定位 我scripts.js中

$("#sortable").sortable({ 
    revert: true 
}); 
$("#sortable").draggable({ 
    connectToSortable: "#sortable", 
    helper: "clone", 
    revert: "invalid" 
}); 

和我的html:

<div id="sortable"> 

     <div class="div div1 ui-state-default">div1</div> 
     <div class="div div2 ui-state-default">div2</div> 
     <div class="div div3 ui-state-default">div3</div> 
     <div class="div div4 ui-state-default">div4</div> 
     <div class="div div5 ui-state-default">div5</div> 
     <div class="div div6 ui-state-default">div6</div> 
    </div> 

我可以捕捉一個項目,但不能改變它與另一個,因爲它彈出上面的錯誤。感謝您的幫助

存在問題! 很多小時後,我解決了這個問題。 :)
這些div由.append()生成,所以我添加行.asortable('刷新')到每個生成的div,它的工作。
工作示例(div的絕對定位)scripts.js中:

$("#sortable").sortable({ 
    revert: true 
}); 
for(var i=1; i<=10; i++) { 
    var dataBlock = Mustache.render('<div class="module-{{id}}">{{id}}</div>',{id:i}) 
    $('#sortable').append(dataBlock); 
    $('#sortable').asortable('refresh'); 
} 

也許有人會用一個工作示例。

+0

該錯誤通常意味着你通過別的東西(不是一個字符串),而不是一個選擇器(串)。 –

回答

0

它應該像這樣定義。其中id爲sortable的div是容器,而.div.div1類的div是可拖動的項目。在你的問題,它使容器也可以排序。

$("#sortable").sortable({ 
 
    revert: true 
 
}); 
 
$("div.div.div1").draggable({ 
 
    connectToSortable: $('#sortable'), 
 
    helper: "clone", 
 
    revert: "invalid" 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script> 
 

 
<div id="sortable"> 
 

 
    <div class="div div1 ui-state-default">div1</div> 
 
    <div class="div div2 ui-state-default">div2</div> 
 
    <div class="div div3 ui-state-default">div3</div> 
 
    <div class="div div4 ui-state-default">div4</div> 
 
    <div class="div div5 ui-state-default">div5</div> 
 
    <div class="div div6 ui-state-default">div6</div> 
 
</div>

+0

感謝您的回覆,但我解決了這個問題,我在帖子中添加了一個解決方案 – Kaker

相關問題