【问题标题】:Jquery-ui Save position of draggable itemjquery-ui保存可拖动项的位置
【发布时间】:2016-05-28 11:09:55
【问题描述】:

我想保持可拖动项目的 x 和 y 位置的 var 停止。 感谢一些小提琴和主题,我做到了:

$("#image").draggable({
        helper: 'clone',
    stop:function(event,ui) {
        var wrapper = $("#wrapper").offset();
        var borderLeft = parseInt($("#wrapper").css("border-left-width"),10);
        var borderTop = parseInt($("#wrapper").css("border-top-width"),10);
        var pos = ui.helper.offset();
        $("#source_x").val(pos.left - wrapper.left - borderLeft);
        $("#source_y").val(pos.top - wrapper.top - borderTop);
        alert($("#source_x").val() + "," + $("#source_y").val());
    }
});

我只想在每次移动项目时保存位置并在其他 javascript 函数中使用它。

这里是 fiddle.js:

http://jsfiddle.net/oe0fg84b/

【问题讨论】:

标签: javascript jquery jquery-ui draggable


【解决方案1】:

正如@John 所述,您似乎已经将可拖动图像的 x 和 y 坐标分别存储在元素 #source_x 和 #source_y 中。

您应该能够在另一个函数中访问它们,如下所示:

var x =$("#source_x").val(); 
var y = $("#source_y").val();

只是一个观察,您的辅助属性克隆似乎导致图像在被拖动后重置其位置。我怀疑这会覆盖您的坐标值,每次都重置为 0,0。试试:

$("#image").draggable({
stop:function(event,ui) {
    var wrapper = $("#wrapper").offset();
    var borderLeft = parseInt($("#wrapper").css("border-left-width"),10);
    var borderTop = parseInt($("#wrapper").css("border-top-width"),10);
    var pos = ui.helper.offset();
    $("#source_x").val(pos.left - wrapper.left - borderLeft);
    $("#source_y").val(pos.top - wrapper.top - borderTop);
    alert($("#source_x").val() + "," + $("#source_y").val());
    }
});

我已经修改了您的示例,以便稍后在单击按钮时获取坐标:http://jsfiddle.net/Jason_Graham/oe0fg84b/2/

【讨论】:

  • 谢谢!正是我想要的:)
【解决方案2】:

尝试使用以下代码。如果我没听错的话,可能这就是解决方案。

var moved_times_index = 0;
var postionssaved_object = {};
$("#image").draggable({
        helper: 'clone',
    stop:function(event,ui) {
        var wrapper = $("#wrapper").offset();
        var borderLeft = parseInt($("#wrapper").css("border-left-width"),10);
        var borderTop = parseInt($("#wrapper").css("border-top-width"),10);
        var pos = ui.helper.offset();
        $("#source_x").val(pos.left - wrapper.left - borderLeft);
        $("#source_y").val(pos.top - wrapper.top - borderTop);
        alert($("#source_x").val() + "," + $("#source_y").val());
        moved_times_index++;
        postionssaved_object[moved_times_index] =   [$("#source_x").val(), $("#source_y").val()];
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多