2013-05-17 39 views
3

我想知道,如果有人对你有线索如何解决以下问题:得到拖动元素的现场位置

我有很多的div

<div id="one"></div> 
<div id="two"></div> 
<div id="three"></div> 

,他们都可以拖动与jQuery UI的

var $divs = $('#one, #two, #three') 
$divs.draggable({ 
    start: dragStart, cursor: 'move', stop: dragEnd   
     }); 

我想做的是,我得到实时拖动的元素的当前位置,这样如果如果拖动的DIV是例如被触发的事件:

if($('#two').position().left <= 500) { /*baadaboom*/ } 

我拖格在一个点,

左边是1000像素

,并立即如果

小于500px的

它应该开火!

回答

5

你可以尝试以下

var $divs = $('#one, #two, #three') 
$divs.draggable({ 
    start: dragStart, cursor: 'move', stop: dragEnd, 
    drag: function() { 
     var t = $(this), l = $(this).offset().left; 
     t.text(l); 

     if(l < 500){ 
      t.text('Badaboom'); 
     } 
    } 
}); 

Fiddle

+0

非常好。 :) hehehe –

+0

非常酷的解决方案。即时通讯只是想知道这是如何工作的,我认为这只会在点数低于500的情况下才会触发。它如何获得“活”的位置?不管怎么说,多谢拉! – supersize

+0

'drag:function(){}'当'element'被拖动时触发,用'.offset()。left'的位置更新'var l'。 [看到这里的事件](http://jqueryui.com/draggable/#events) – Spokey

0

取一个全局变量var的位置,并设置它当div被点击拖动。然后你可以使用这个变量进行比较。