2013-05-16 87 views
0

我已經搜索瞭解決方案,但它們都涉及在程序中命名id。我的不是。它涉及到一個頁面,用戶可以創建他們自己的列表,這意味着我無法事先知道他們將擁有多少個列表以及他們應該命名什麼。保存沒有標識的可拖動jQuery的位置

但是,我試圖在循環中通過列表名稱作爲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中,但我不知道如何爲每個列表單獨執行此操作。幫助將不勝感激。

回答

0

我會給出一步一步的過程來做到這一點。

1)在上面的代碼,添加一些動態的主鍵或東西爲ID的DIV

2)當你永遠拖動,處理它的啓動或停止的事件保存在一個全局變量的位置。

3)當你拖動只是將信息添加到全局變量,一旦完成保存在本地可用或cookie通過將全局變量轉換爲字符串形式。當需要使用JSON2.JS庫解析時,並使用JSON.parse()和JSON.stringify()方法。

希望這回答了你的問題。

+0

在列表的div中已經有一個動態生成的ID,如「<%= list.name%>」所示。問題是我無法弄清楚如何將這個ID傳遞給開始/停止事件並保存/解析位置。 – Rezk

+0

javascript中的任何事件都會有一個參數e,所以在你的start和stop方法中start:function(e){使用「e」變量可以得到被拖動的元素的id} –

+0

嘗試使用function(e ){var id = e.currentTarget.id; };這是你可以得到元素@ Rezk –