2016-04-03 3 views
2

Я хотел сохранить мое перетаскивание в localStorage, но когда я обновляюсь, тащить место не туда, где я его уронил. Я использовал jQuery UI | Draggable.Как сохранить drag & drop на localStorage?

JSFIDDLE.

Как мы можем сохранить его в LocalStorage?

HTML

<p id="text">Lorem ipsum dolor sit amet.</p> 
<button id="save">Save localStorage</button> 
<button id="clear">Clear localStorage</button> 

<div id="append-area"></div> 

JS

$(function() { 

$("#save").click(function() { 
var text =$("#text").text(); 
$("#append-area").append(text+"<br>"); 

var appended=$("#append-area").html(); 
localStorage.setItem("appended",appended); 
}); 

if (localStorage.getItem('appended')) { 
    $('#append-area').html(localStorage.getItem('appended')); 
} 

$("#append-area").draggable(); 

$("#clear").click(function() { 
window.localStorage.clear(); 
window.location.reload(); 
}); 

}); 
+0

Ваш код работает хорошо, но я бы порекомендовал u пойте методы JSON с ним, как localStorage.setItem («добавлено», добавлено); на localStorage.setItem («добавлено», JSON .stringify (добавлено)); localStorage.getItem ("прилагается"); к JSON .parse (localStorage.setItem ("прилагается"))); –

+0

Я сделал то, что вы сказали, но перетащить не удалось. И зачем мне использовать JSON .stringify? @miketracker – Norx

+0

проверить мой ответ, что вам нужно? –

ответ

2

Попробуйте это, надеюсь, что это то, что вы ищете .. :)

скрипку ссылка https://jsfiddle.net/5mwndskb/1/

$(function() { 
    var getPos = JSON.parse(localStorage.getItem("appended")); 
    var currentPos = { 
    top: 0, 
    left: 0 
    }; 
    if (getPos !== null && getPos.top !== null) { 
    $('#append-area').css({ 
     top: getPos.top, 
     left: getPos.left 
    }).append(getPos.txt); 
    }; 

    $('#append-area').draggable({ 

    drag: function(event, ui) { 

     currentPos = $(this).position(); 
    } 
    }); 

    $("#save").click(function() { 
    var text = $("#text").text(); 
    currentPos.txt = text; 
    $("#append-area").append(text + "<br>"); 
    localStorage.setItem("appended", JSON.stringify(currentPos)); 
    }); 

    $("#clear").click(function() { 
    window.localStorage.clear(); 
    window.location.reload(); 
    }); 

}); 
+0

Большое вам спасибо! – Norx

+0

мое удовольствие .. :) –