【问题标题】:jQuery sortable issuesjQuery 可排序问题
【发布时间】:2014-07-10 13:17:02
【问题描述】:

我有项目列表和 jQuery 可排序插件。

点击激活排序按钮后,我会这样做:

$( ".sortable" ).sortable();
$( ".sortable" ).sortable( "option", "disabled", false );

点击保存新订单按钮后我会这样做:

$( ".sortable" ).sortable( "option", "disabled", true );
// Some Ajax to save actual positions

点击重置订单后我会这样做:

$( ".sortable" ).sortable("cancel");
$( ".sortable" ).sortable( "option", "disabled", true );

问题来了:

第 1 步:我激活排序,进行一些排序并保存。一切正常。

Step2:现在,我再次单击按钮以激活排序并再次排序。现在我改变主意了,点击重置排序按钮。但是排序位置在第 1 步之前很久以前就恢复了 :(

我需要在步骤 1 中保存排序项目后保存它们的位置,因此在步骤 2 中单击重置按钮后,这些项目必须在步骤 1 之后进入状态。

非常感谢!

附:对不起我的英语不好。

【问题讨论】:

标签: jquery jquery-ui-sortable


【解决方案1】:

尝试使用本地存储或会话存储 - 取决于您想要什么。 你有很多或只有一个用 .sortable 类注释的对象吗? 如果您只有一个,有一个简单的解决方案 - 只需存储所有孩子。

localStorage.setItem('storedChildren', JSON.stringify($(".sortable").children());

然后检索它们,清除 $(".sortable") 并将您的项目放在那里。 您的重置将包括放置以前存储的对象。

附:您可能应该升级此代码,我对 Jquery 没有太多经验。

【讨论】:

  • 谢谢,我也有类似的解决方案,但对我来说似乎太丑陋了,我希望 jquery 本身可以解决我的问题。
猜你喜欢
  • 1970-01-01
  • 2011-02-11
  • 2012-05-27
  • 2015-02-20
  • 2011-02-09
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多