1

ユーザーが iOS で div をドラッグできるようにするコードを書き直して、よりクリーンにしました。実装したい変更の 1 つは、localstorageこれらの各 div の位置を保存および取得するために使用することです。

jQuery:

$(".drag").each(function () {
    var drag = this;
    xPos = drag.offsetWidth / 2;
    yPos = drag.offsetHeight / 2;
    drag.addEventListener("touchmove", function() {
        event.preventDefault();
        $(this).css({
            "left" : event.targetTouches[0].pageX - xPos + "px", 
            "top" : event.targetTouches[0].pageY - yPos + "px",
            "z-index" : "101",
        });
        $("div").not(this).css("z-index", "100");
    });
});

以前は、Cookie を使用して位置を設定していました。

$(window).unload(function () {
    $(".remember").each(function () {
        $.cookie(this.id, this.value, {
            expires: 365
        });
    });
    $(".draggable").each(function () {
        var a = $(this);
        $.cookie(this.id, a.css("top") + "_" + a.css("left"), {
            expires: 365
        });
        $.cookie("disp" + this.id, a.css("display"), {
            expires: 365
        });
    });
});

ドラッグ可能な各 div には.draggableクラスがあり、テキスト ボックスの値を保存する場合は.rememberクラスがありました。

使用するために更新する価値はありますか/実用的LocalStorageですか?

4

1 に答える 1

1

これには、cookie よりも Localstorage の方が適しています。各リクエストなどでサーバーに追加のバイトを送信しないためです。Cookie に関するほとんどの問題は、localStorage に移行しても残ることに注意してください。複数のタブや同じドメインからのスクリプトによって、保存されたデータが台無しになる可能性がありますが、サードパーティが含まれていない独自のサイトを想定しているため、心配する必要があります。

于 2012-09-09T03:07:10.160 に答える