0

リストアイテムをある順序付けられていないリストから別のリストに移動しようとしています。update.js.erbは、更新が発生したときに呼び出されます(ログでエラーなしで呼び出されていることがわかります)。

私はjQueryを初めて使用するので、無知であることをお詫びします。

<% if @task.complete? %>
  $('#task_<%= @task.id%> li').detach().appendTo($('#complete_tasks ul'));
  $.('#complete_tasks').sortable_list();
<% else %>
  $('#task_<%= @task.id %> li').detach().appendTo($('#incomplete_tasks ul'));
  $.('#incomplete_tasks').sortable_list();
<% end %>

あるリストから別のリストにアイテムを移動する方法で.detach()を見ましたか?

私はさまざまなフォームを試しましたが、リストまたはリストアイテムを間違って選択していると思います。

すべての/すべてのフィードバックは大歓迎です!:)

アップデート1:

ul id="complete_tasks" data-update-url="http://localhost:3000/tasks/sort_incomplete" class="ui-sortable"
  li class="task" id="task_1"
  ...

同様に、incomplete_tasks

ul id="incomplete_tasks" data-update-url="http://localhost:3000/tasks/sort_complete" class="ui-sortable"
  li class="task" id="task_7"
  ...

更新2:これが最終的に機能したものです。この後、問題を引き起こした最初のテスト時に別の関数呼び出しがありました。

<% if @task.complete? %>
  $('#complete_tasks').append($('#task_<%= @task.id %>'));
<% else %>
  $('#incomplete_tasks').append($('#task_<%= @task.id %>'));
<% end %>

余分な$(...)がないと、関数は#task_2を出力するだけなので、それを追加して不正な関数呼び出しを削除すると、すべてがうまく機能しました。

4

2 に答える 2

1

これで十分です

$('#task_<%= @task.id%> li').appendTo('#complete_tasks ul');

ただし、これにより、すべてのリストアイテム#task_内部のulに移動しますcomplete_tasks

于 2012-11-07T17:08:13.687 に答える
1

切り離す必要はありません。使用appendTo(または追加)すると、要素が移動します。コピーは作成されません。また、を削除$()appendToます-必要なのは#IDだけです。また、要素を選択するために必要なのはIDだけです。タグ名やクラスは必要ありません。

于 2012-11-09T09:20:15.783 に答える