如何保存实际改变的坐标

时间:2017-09-03 14:55:46

标签: javascript jquery gridstack

我遇到了这个问题。

当我更改窗口小部件的位置时,例如拖动两个窗口小部件。 使用事件“更改”来获取这些更新的小部件。 我确实检查了改变的位置。

if (stack_item.data('gs-x') != items[i].x || stack_item.data('gs-y') != items[i].y) {

我重新加载页面。更改窗口小部件的位置,没有任何反应。然后再次更改相同小部件的位置并保存。

为什么呢?如何保存实际改变的坐标?

$(document).on('change', '.grid-stack', function(event, items) {
  var updated_widgets = {};
  for (var i = 0; i < items.length; i++) {
    var widget = items[i].el.find('.dashboard-widget');
    var stack_item = widget.parent();
    // Let's see if cordinates actually changed
    // (this change event reports changes even when nothing changed)
    if (stack_item.data('gs-x') != items[i].x || stack_item.data('gs-y') != items[i].y) {
      updated_widgets[widget.data('widget-id')] = {
        'x': items[i].x,
        'y': items[i].y
      }
    }
  }

  if (Object.keys(updated_widgets).length > 0) {
    $.post('/dashboard_widgets/update_positions', {
      '_method': 'patch',
      'updated_widgets': updated_widgets
    });
  }
});

0 个答案:

没有答案