Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   UI draggable (https://javascript.ru/forum/jquery/55537-ui-draggable.html)

Moloch 03.05.2015 00:20

UI draggable
 
Здравствуйте , подскажите пожалуйста почему неправильно выполняется вот такой код? есть массив объектов segmentsCoords из которого я методом splice при старте драга вырезаю один элемент и помещаю его в переменную curren_segment. в процессе перетаскивания я многократно вызываю функцию addSegmentCoords которая записывает в одно из свойств объекта координаты положения.при стопе я добавляю объект curren_segment в конец segmentsCoords. Проблема в том, что если я перетаскиваю один и тот же блок .segment несколько раз, в массив объектов segmentsCoord объект curren_segment записывается многократно, то есть сначала он был на 15-й позиции, потом после перетаскивания на 15 и 14, 15 и 14 и 13 и т.д. т.е. удаляются другие объекты из массива. в чем проблема?
$(".segment").draggable(
 
        {
                stack:'.segment',
                start: function() {
                    curren_segment = segmentsCoords.splice($(this).attr('num'),1);
                   
                    
                },
                drag: function() {
                    var seg=$(this);
                    number=(seg.attr('num'))*1;
                        curren_segment= addSegmentCoords(curren_segment[0],$(this).offset().left,$(this).offset().top,number);
          
                 },
                        
                        stop:function() {
                             
                            segmentsCoords.push(curren_segment);
                            curren_segment='';
                        
                        }
                    });

<div class="container">
 <div num = '0' class='segment'></div>
 <div num = '1' class='segment'></div>
 <div num = '2' class='segment'></div>
 <div num = '3' class='segment'></div>
 <div num = '4' class='segment'></div>
 <div num = '5' class='segment'></div>
 <div num = '6' class='segment'></div>
 <div num = '7' class='segment'></div>
 <div num = '8' class='segment'></div>
 <div num = '9' class='segment'></div>
 <div num = '10' class='segment'></div>
 <div num = '11' class='segment'></div>
 <div num = '12' class='segment'></div>
 <div num = '13' class='segment'></div>
 <div num = '14' class='segment'></div>
 <div num = '15' class='segment'></div>
 
</div>


Часовой пояс GMT +3, время: 22:26.