2013-05-17 59 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被點擊拖動。然後你可以使用這個變量進行比較。