Как получить последнюю позицию только для перетаскиваемого элемента? - PullRequest
0 голосов
/ 27 апреля 2019

У меня есть этот перетаскиваемый элемент,

$(function() {
   var positions = {};
    c = 0;

  $("#draggable, #draggable2").draggable({

    helper: 'clone',
    appendTo: "#droppable",
    // drop : function() { 
    //     $(this).css('margin-top', '30px');
    //   }
  });


  $("#droppable").droppable({
    accept: "#draggable, #draggable2",


    drop: function(e, ui) {
      c++;
      var $obj = ui.helper.clone().attr('id', 'benchdropped' + c).draggable({
        stop : function (event, ui) {
            positions[this.id] = ui.position;
            console.log('positions', positions);
            // console.log(Object.keys(positions)); //ids for benches - to be used in node.
            $('#save').click(function() {

                        var token =  $('input[name="_csrf"]').attr('value')
                        $.ajaxSetup({
                            beforeSend: function(xhr) {
                                xhr.setRequestHeader('X-CSRF-Token', token);
                            }
                        });
                        console.log('positions in ajax',positions)            
                        $.ajax({

                            url: '/savelayout',
                            type: 'POST',
                            dataType: "json",

                            data: positions,
                            // success:function(data) {
                            //     alert('done');
                            // },

                        });
                    })
            }

      });
      // console.log(Object.keys(pos))
      $obj.css({
        // // position: 'absolute',
        // top: pos.top + "px",
        // left: pos.left + "px",
        marginTop: "0px",
        marginLeft: "0px",

      }).rotatable( {
        snap:".chart-area"}).draggable({ //make it draggable

        // snap: true,
        // grid: [ 20, 20 ],
        appendTo: "#droppable",
        containment: ".chart-area",
        position: 'absolute',
        scroll: true,


      }).appendTo(this);
      // $obj.draggable({
      //    start: function (event, ui) {
      //       pos[this.id] = ui.position;
      //       localStorage.pos = JSON.stringify(pos);
      //       }
      // })

      $obj.appendTo("#droppable");


    }

  });
});

Как только я уронил его, я получил необходимое значение, но, когда я его перетаскивал, была создана еще одна «позиция» с новыми координатами.

См. Это: enter image description here

Я пытаюсь сделать так, чтобы они были созданы, обновлены.Первые «позиции» будут обновлены новыми координатами.В этот момент, когда я публикую это в MongoDB, я получаю все те «позиции», которые мне не нужны, и я не знаю, как избавиться от них.Спасибо!

...