2017-09-15 8 views
1

の「置き換える」私は私がそれらを整理したい場合は、私はこのエラーにキャッチされない例外TypeError:プロパティを読み取ることができません未定義の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) 
を取得 ソート可能とドラッグを使用する必要がdivタグでグリッドを持っています

<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:アイテム私は絶対に マイscripts.js

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

と私のHTMLを配置しているので、

は私がasortable使用します

アイテムをキャッチすることはできますが、上記のエラーが表示されるため、アイテムを変更することはできません。助けてくれてありがとう

問題が解決しました! 何時間もして、私はこの問題をうんざりしました。 :)
これらのdivは.append()によって生成されるので、生成された各divに.asortable( 'refresh')行を追加して動作します。
の作業例(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

関連する問題