私はリスト項目を$ .getで動的にページに追加してから、OL要素に追加します。これまでかなり普通でした。jQuery + Sortable + live
しかし、jQueryはこれらの新しい項目がページに読み込まれると認識していないため、それらを並べ替えることができません。
私はjQueryのライブでいくつかの臨床試験をしたが、どこにでもいることを聖霊降臨祭ませんでした...
私はリスト項目を$ .getで動的にページに追加してから、OL要素に追加します。これまでかなり普通でした。jQuery + Sortable + live
しかし、jQueryはこれらの新しい項目がページに読み込まれると認識していないため、それらを並べ替えることができません。
私はjQueryのライブでいくつかの臨床試験をしたが、どこにでもいることを聖霊降臨祭ませんでした...
.sortable()
のrefresh
方法は.sortable()
機能を経由して追加されていないli
年代を認識していないようです。
.sortable()
初期化コードを文書準備済みのANDで呼び出す関数に追加し、li
を動的に追加するコードでお試しください。
の代わりに:私はこの解決策を見つけたし、私のために正常に動作し
jQuery(document).ready(function() {
jQuery("#mySortableOL").doSort();
}
...
jQuery("#mySortableOL").append(...);
doSort();
...
function doSort(){
jQuery("#mySortableOL").sortable({
...
});
}
あなたは(「リフレッシュ」).sortableてみましたか? http://docs.jquery.com/UI/Sortable#method-refresh
なぜこれが受け入れられた回答ではありませんか?これは、このAjaxの問題を管理する最もクリーンな方法です。 –
コード末尾には、.sortable({});
が追加され、すべてのパラメータが再指定されます。おそらく関数や何かを使ってコードを複製せずにこれを行う方法がありますが、少なくともこれは機能します。
$('#List').live('click',function(e){
var myHTMLcode = '<li>New Item</li>'
myHTMLcode.appendTo('#List').sortable({
items : 'li',
axis : 'xy',
update : function(event, ui){SPECIFIC Sortable FUNCTION CODE HERE}).fadeIn();
)};
:
jQuery(document).ready(function() {
jQuery("#mySortableOL").sortable({
...
});
}
...
jQuery("#mySortableOL").append(...);
jQuery("#mySortableOL").sortable("refresh");
のようなものを試してみてください。
makesortable = function(){
$("#mylist").sortable({
...
})
};
...
// after list refresh :
makesortable();
それはLIだけではなく、基本的にすべてですが、アプローチは正しいし、働いています。 –