ボタンを押す事で、特定エリア内に連番を入れた要素を追加し、sortable()
で並び替えをしているのですが、sortable()
で並び替えをした後にappend()
でさらに追加をすると連番処理が強制的に番号順になってしまいます。
単純にappend()
後に追加した要素に対してeach()
で連番処理を行っている為、強制的に番号順になってしまっているのですが、並び替えた後に追加しても並び替えた番号のまま追加する方法は何かないものでしょうか。
HTML
1<ul> 2<li class="item"> 3<button class="button"><span class="text">ああああ</span></button> 4</li> 5<li class="item"> 6<button class="button"><span class="text">いいいい</span></button> 7</li> 8<li class="item"> 9<button class="button"><span class="text">うううう</span></button> 10</li> 11</ul> 12 13<div class="container"> 14<ul class="list ui-sortable"></ul> 15</div>
javascript
1 $(document).ready(function () { 2 function updateNumber() { 3 $('.number_id').each(function (index) { 4 $(this).text(index); 5 }); 6 $('.number_item').each(function (index2) { 7 $(this).attr('data-group', index2); 8 }); 9 } 10 11 $(document).on("click", ".button", function (event) { 12 var $layout = $(".list"); 13 text = $(this).parent().find(".text").text(); 14 15 var $header = 16 '<div class="header">' + 17 '<span class="number_id">' + '</span>' + 18 '<span class="memo">' + text + '</span>' + 19 '</div>'; 20 21 var $content = 22 '<li class="number_item" data-group="">' + $header + '</li>'; 23 24 $layout.append($content); 25 updateNumber(); 26 }); 27 Draggable(); 28 }); 29 function Draggable() { 30 $(".list").sortable({ 31 handle: "div.header", 32 axis: 'y' 33 }); 34 }
下記のようにカウントすればできるのは分かっているのですが、今回は諸事情により使えないため他の方法を探しています。
javascript
1 $(document).ready(function () { 2 var count = 1; 3 $(document).on("click", ".button", function (event) { 4 var $layout = $(".list"); 5 text = $(this).parent().find(".text").text(); 6 7 var $header = 8 '<div class="header">' + 9 '<span class="number_id">' + count + '</span>' + 10 '<span class="memo">' + text + '</span>' + 11 '</div>'; 12 13 var $content = 14 '<li class="number_item" data-group="' + count + '">' + $header + '</li>'; 15 16 $layout.append($content); 17 count++; 18 }); 19 Draggable(); 20 });
もしわかる方がいらっしゃいましたらお教え頂けると幸いです。
よろしくお願い致します。
jsfiddleのソースコード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/27 19:44
2019/05/28 02:19
2019/05/28 02:36
2019/05/28 02:58