保存没有id的可拖动jQuery的位置

时间:2013-05-16 10:27:30

标签: javascript jquery html ruby-on-rails

我已经搜索过这方面的解决方案,但他们都涉及在你的程序中命名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中,但我不知道如何为每个列表单独执行此操作。非常感谢帮助。

1 个答案:

答案 0 :(得分:0)

我将逐步完成这一过程。

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

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

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

希望这能回答你的问题。