JQuery 拖放保存位置

发布于 2024-11-09 11:12:01 字数 98 浏览 0 评论 0原文

我使用 JQuery 拖放来创建在 www.bbc.com 等网站上使用的仪表板。拖拽控件后是否可以保存控件的坐标?如果是这样,有人有可以推荐的网站或文章吗?

谢谢!

I'm using the JQuery drag and drop to create a dashboard used on websites such as www.bbc.com. Is it possible to save the coordinates of the control after dragging and dropping the controls? if so, anyone have a website or article they would recommend?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

送舟行 2024-11-16 11:12:01

如果您只想要控件的坐标,则可以使用
http://api.jquery.com/offset/ 拖动停止后然后保存这些坐标到数据库。

但是,如果您的元素捕捉到网格,您可能需要计算该元素位于哪个网格列以及该列中的哪个位置。

If you just want the coordinates of the controls you can just use
http://api.jquery.com/offset/ after the dragging has stopped and then saves those coordinates to a database.

But if your elements snap to a grid you might want to calculate which grid column and which position in that column the element is.

神也荒唐 2024-11-16 11:12:01

你想把他们救到哪里?

您可以编写一个函数来保存容器内的位置,当用户完成移动控件时,会触发一个事件:

 stop: function(event, ui) { ... }

您可以在其中使用 offset 函数获取控件位置。

问候

Where do you want to save them?

You can write a function to save the position inside the container, when a users finish to move the controls an event is fired:

 stop: function(event, ui) { ... }

There you can get the controls position using the offset function.

Regards

太阳哥哥 2024-11-16 11:12:01

您正在寻找 ui.position 属性。

$("#foo").draggable();
$("#foo").bind("dragstop", function (e, ui)
{
    console.log(ui.position.top);
    console.log(ui.position.left);
});

该事件可以绑定在可拖动方法中,但为了清楚起见,我将其保留为这样。

更多信息

You're looking for the ui.position attribute.

$("#foo").draggable();
$("#foo").bind("dragstop", function (e, ui)
{
    console.log(ui.position.top);
    console.log(ui.position.left);
});

The event can be bound within the draggable method but I've left it like this for clarity.

More Information

茶花眉 2024-11-16 11:12:01
$(this).draggable({revert:true});

这将帮助您的拖动控件在释放拖动时移动到其原始位置

$(this).draggable({revert:true});

this will help your drag control move to its original position when drag is released

与往事干杯 2024-11-16 11:12:01

您不能在 drop 上运行一个函数,使用 ajax 将相关控件的坐标和大小发送到服务器并保存吗?

如果是“正常”拖放,那么您就有一个可以使用的stop功能。

$( ".selector" ).draggable({    stop:
function(event, ui) { $.ajax(...) }
});

Could you not run a function on the drop that sends the coordinates and size of the control in question using ajax to the server and save it?

If it's the "normal" drag and drop then you have a stopfunction that you could use.

$( ".selector" ).draggable({    stop:
function(event, ui) { $.ajax(...) }
});
无人问我粥可暖 2024-11-16 11:12:01

拖放

$('#page_list').sortable({

            update  : function(event, ui)
          {
              $("#save_arrangement").show();
              var id_array = new Array();
                 $('#page_list tr').each(function(){
                    id_array.push($(this).attr("id"));
                 });
             console.log(id_array);
             $("#save_arrangement").on("click", function () {
                  $.ajax({
                    url:"/quotations/save_arrangement",
                    method:"POST",
                    data:{'id_array':id_array},
                    success:function(success)
                    {
                     swal({
                        title:"Arrangement has been saved",
                        type:"success"
                     },
                     function(isConfirm) {
                          if (isConfirm) {
                                  location.reload(); 
                          }
                        });

                    },
                  });
             });
          }
      });

drag and drop

$('#page_list').sortable({

            update  : function(event, ui)
          {
              $("#save_arrangement").show();
              var id_array = new Array();
                 $('#page_list tr').each(function(){
                    id_array.push($(this).attr("id"));
                 });
             console.log(id_array);
             $("#save_arrangement").on("click", function () {
                  $.ajax({
                    url:"/quotations/save_arrangement",
                    method:"POST",
                    data:{'id_array':id_array},
                    success:function(success)
                    {
                     swal({
                        title:"Arrangement has been saved",
                        type:"success"
                     },
                     function(isConfirm) {
                          if (isConfirm) {
                                  location.reload(); 
                          }
                        });

                    },
                  });
             });
          }
      });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文