为丢弃的元素分配唯一的id

时间:2016-03-29 04:16:25

标签: jquery drag-and-drop

大家好,我正在尝试为删除元素分配唯一的ID。当我将一个元素从一个div标签拖到另一个div标签时,会分配一个id,但是当我将该元素拖到另一个位置时,id会被更改.I想要保持id相同,即使多次拖动相同的元素。

// JavaScript文档

 $(document).ready(function () {
var x = null;     
//Make element draggable
$(".drag").draggable({
    helper: 'clone',
    cursor: 'move',
    tolerance: 'fit'
});
 var i=1,j=0;
var x1,x2,y1,y2,tmp,tmp2;
$("#droppable").droppable({

  drop: function(e, ui) {

    ui.helper.attr('id',"id"+i);
    //ui.helper.remove();
    tmp=ui.helper.attr('id');
    x = ui.helper.clone().bind("click",'img',function(){
    alert("clicked"+ ui.helper.attr('id') + tmp + tmp2);
    leftpos = ui.offset.left-210;
    toppos= ui.offset.top;
    //document.write("leftpos="+ leftpos);
    //document.write("toppos="+ toppos);

    var cor=window.prompt("Enter coordinates x1,y1");
    //window.location.href="floordata.php?c="+cor;

    });

            x.draggable({
            helper: 'original',
           containment: '#droppable',
            tolerance: 'fit',
        }); 

        x.appendTo('#droppable');
        ui.helper.remove();
        i++;
        }

      });
   });

1 个答案:

答案 0 :(得分:1)

假设您的div在第一次拖动之前没有为其分配id,您只需检查ID,如果存在,则不要重新分配。这样的事情应该有效

var attr = ui.helper.attr('id');

// check if the id attribute exists, if it doesn't assign id
if (typeof attr == typeof undefined || attr == false) {
    ui.helper.attr('id',"id"+i);
}