【问题标题】:jQuery draggable, save the position after reloaded page?jQuery可拖动,重新加载页面后保存位置?
【发布时间】:2013-07-10 22:37:31
【问题描述】:

我进行了大量研究,但我需要一个更个性化的答案,我非常肯定保存可拖动的值需要一个 cookie 解决方案,不像 jQuery .slider 你可以保存这样的值

   //jQuery UI Slider
jQuery( ".slider" ).slider({
       animate: true,
           range: "min",
           value: $("input.slider-value").val(),
           min: 50,
           max: 700,
           step: 1,

           //this gets a live reading of the value and prints it on the page
           slide: function( event, ui ) {
               jQuery( "#slider-result" ).html( ui.value );
               jQuery( ".static_preview_image" ).height( ui.value );
           },

           //this updates the hidden form field so we can submit the data using a form
           change: function(event, ui) {
           jQuery('#hidden').attr('value', ui.value);
           } 

  });

    $( ".static_preview_image" ).css({height: $("input.slider-value").val()}); //This gives my element the height of the slider, it get stored in my slider function...

根据我的研究,.draggable 不能以同样的方式工作,它需要 cookie?

如果那是真的,有人可以解释如何以最干净的方式使用 cookie,我只想保存顶部、右侧、左侧、底部的值...

这是我的可拖动函数

    $( ".MYELEMNT" ).draggable({
    containment: '#_moon_static_bg_status', // I set some containment

// Read this in another post, this outputs a live value of .MYELEMNT from the start of the drag.
start: function(event, ui) {

    // Show start dragged position of image.
    var Startpos = $(this).position();
    $("div#start").text("START: \nLeft: "+ Startpos.left + "\nTop: " + Startpos.top);
},

// Same as above but prints the current position where MYELEMNT stops
stop: function(event, ui) {

    // Show dropped position.
    var Stoppos = $(this).position();
    $("div#stop").text("STOP: \nLeft: "+ Stoppos.left + "\nTop: " + Stoppos.top);
}


});

我想说它就像写一些类似于我如何获得滑块值的东西一样简单

    $( ".static_preview_image" ).css({height: $("input.slider-value").val()});

但我认为我需要使用 cookie...

【问题讨论】:

  • 这看起来很适合使用localstorage
  • 现在正在阅读它,这是一种无需使用数据库就可以存储数据的方法吗?
  • 好像有点过头了……
  • localstorage 是一个标准 API,用于使用 JavaScript 在 client-side 数据库中存储信息。如果您不希望用户能够转到另一台计算机并访问他们保存的数据,那么这应该可以工作。 HTML5 localstorage 上的这个参考可能更容易理解。
  • 很好,我不知道本地存储。听起来是为客户端存储临时数据的好方法。

标签: jquery position save draggable


【解决方案1】:

两种方法:首先,cookie 将在页面刷新之间持续存在时起作用。其次,如果您使用的是PHP,您可以使用来自服务器端的客户端会话数据来记住它,但是这种方法需要您在将项目移动到服务器后从客户端发送数据(通过ajax或类似的东西)以通知新位置,以便它可以记住它。

编辑:上面关于使用 localstorage 的评论听起来是一个很好的方法,我会先尝试。

【讨论】:

  • Cookies 和本地存储有不同的用例。这个答案有一个非常好的描述:stackoverflow.com/a/3220802/1427124
  • 我在使用PHP,我实际上需要重用数据,这是管理端的预览,用户将元素拖动到所需的位置,id喜欢在页面刷新后保存该位置,并重用在前端.. localstorage 听起来很酷,但我确实有一个数据库,听起来我需要使用 ajax 来发送数据,有人可以帮我吗,只使用过一次 ajax..
  • 显然有很多方法可以存储可拖动数据,但我想要一个简单且不需要大量代码的解决方案:)
  • @MichaelJosephAubry - 是的,你是对的。如果您需要将数据存储在服务器上,那么 localstorage 绝对不适合您。
  • 重新查看您的评论,我明白您现在在说什么“Cookie 和本地存储有不同的用例” 道文那个链接是一个很好的链接,如果我没看错的话,它对我的​​解释更好一些它说无论哪种方式都需要 cookie “不过,无论哪种方式,您都希望将会话 cookie 保留为 cookie。”如果在管理方面它是本地存储并且在前端输出数据是服务器端怎么办?
猜你喜欢
  • 1970-01-01
  • 2023-03-31
  • 2020-01-31
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 2012-09-16
  • 1970-01-01
相关资源
最近更新 更多