如何检测正在拖动哪个div

时间:2014-02-25 00:10:49

标签: javascript jquery html css

我有一个库存div,里面有多个div。我需要找出被拖动的插槽,这是我的代码。拖动div时,我必须将选定的插槽设置为库存类中的该插槽。我无法让它发挥作用。

var numOfSlots = 6;

for(var i = 1; i <= numOfSlots; i++){
  $("#slot"+i ).draggable({
      zIndex: UIlayer++
      start: function(){
         var thestring = $(this).attr('id');
         var thenum = thestring.replace(/^\D+/g, '');
         self.setSelectedSlot(thenum);
    }

  $("#slot" + i).data({
      'initLeft': $("#slot" + i).css('left'),
      'initTop': $("#slot" + i).css('top')
  });
}

2 个答案:

答案 0 :(得分:1)

不确定我是否完全满足您的要求,但

怎么样?

HTML:

<div class="slot" data-id="1">1</div>
<div class="slot" data-id="2">2</div>

JS:

$(".slot" ).draggable();

$(".slot").on("dragstop", function() {
   console.log($(this).data("id")); 
});

会将1或2记录到控制台,具体取决于您拖动的div。 fiddle

答案 1 :(得分:0)

像这样的东西

$("#slot"+i ).draggable({
zIndex: UIlayer++,
start: function(event){
    var element = event.target;
     var thestring = $(this).attr('id');
     var thenum = thestring.replace(/^\D+/g, '');
     self.setSelectedSlot(thenum);
}

$("#slot" + i).data({
'initLeft': $("#slot" + i).css('left'),
'initTop': $("#slot" + i).css('top')
});