0

我已经寻找解决方案,但它们都涉及在您的程序中命名 id。我的没有。它涉及到一个页面,用户可以在其中创建自己的列表,这意味着我无法事先知道他们将拥有多少个列表以及应该命名什么。

但是,我尝试在循环中执行此操作以将列表名称作为 id 传递,但没有成功。这是我在页面上创建列表的 Ruby 代码:

<p>
<% @lists.each do |list| %>
  <div data-listname="<%= list.name %>" class="draggable ui-widget-content">
  <h2><%= link_to list.name, list, "data-role" => "button", "data-inline" => "true", "data-mini" => "true" %></h2>
  <div id="description"> <%= list.description %></div> <br><br>
  <%= link_to "Edit", edit_list_url(list), "data-role" => "button", "data-inline" => "true", "data-mini" => "true", "data-icon" => "gear" %> <%= link_to "Delete", list_url(list), :method => :delete, "data-role" => "button", "data-inline" => "true", "data-mini" => "true", "data-icon" => "alert" %>
<br>
</div>
  <% end %>
</p>

这是启用拖动的 Javascript/jquery 代码:

$( document ).on( "pageinit", function() 
{
  $( ".draggable" ).draggable({ snap: true, grid: [ 10,10 ] });
});

我正在考虑将每个列表的位置保存在 cookie/localstorage 中,但我不知道如何为每个列表单独执行此操作。帮助将不胜感激。

4

1 回答 1

0

我将给出一步一步的过程来做到这一点。

1)在上面的代码中,添加一些动态的主键或作为 div 的 Id

2)当您拖动时,处理其开始或停止事件以将位置保存在全局变量中。

3)当您将信息拖动到全局变量时,一旦完成,通过将全局变量转换为字符串形式将其保存在本地验证或 cookie 中。何时需要使用 JSON2.JS 库进行解析,并使用 JSON.parse() 和 JSON.stringify() 方法。

希望这回答了你的问题。

于 2013-05-16T11:13:24.153 回答