2011-04-20 43 views
1

我正在創建一個拖放應用程序,我想要做的是當用戶拖動元素時,如果光標位於某個其他元素上。如何找出遊標是否在元素的邊界

繼承人的流程:

用戶啓動頁
中拖動的元素當鼠標越過某些地方我想打一個Ajax調用。

因爲我知道元素和他們的邊界通過jquery我只是想做最好的方式來檢查。

回答

0

從這裏開始:http://docs.jquery.com/Tutorials:Mouse_Position

獲取鼠標座標,並將它與你比較它的項目的.offset()值。

http://api.jquery.com/offset/

+0

這就是我正在做的,但我想知道是否有一個更好/更簡單的方法來做到這一點 – locrizak 2011-04-20 18:55:00

+0

通常使用事件是安全的,但因爲你帶一個重疊的項目,答案是:可能不是。 :( – 2011-04-20 18:57:34

+0

也許劫持這個答案的一些代碼:http://stackoverflow.com/questions/5598953/find-elements-that-are-stacked-under-visually-an-element-in-jquery/5599301#5599301這可能是有價值的。 – 2011-04-20 18:59:13

0

$(「#element」)。hover();

Hover

+0

或的mouseenter()和鼠標離開() – 2011-04-20 18:28:18

+0

,因爲我有連接到鼠標的元素由於拖動不起作用。 – locrizak 2011-04-20 18:40:37

1

通過

https://stackoverflow.com/users/650094/adam-terlson

find elements that are stacked under (visually) an element in jquery

提到的片段是這樣的:

function mouseWithin(bounds,x,y) { 
    var offset = bounds.offset(); 
    var l = offset.left; 
    var t = offset.top; 
    var h = bounds.height(); 
    var w = bounds.width(); 

    var maxx = l + w; 
    var maxy = t + h; 

    return (y <= maxy && y >= t) && (x <= maxx && x >= l); 
}; 

,你可以使用它像這樣:

var gallery=$("#carousel-gallery"); 
mouseWithin(gallery,event.pageX,event.pageY); 
相關問題