2013-07-31 141 views
0

我想在不使用jQuery UI的情況下進行拖放操作。 (200KB太多加載)沒有jQuery UI的jQuery拖放問題

我有兩個問題:

  1. 我不知道如何拖動的元素捕捉到特定元素。 我知道在jQuery UI我只能提供一個選項,如'snap',但不知道如何在普通的jQuery中做到這一點。

  2. 當我拖動元素時,我可以在哪裏將光標更改爲指針圖標?

我有以下代碼:

var dragging =null; 

obj = $('table td'); 

$(obj).click(function(e){ 
    if(dragging){ 
     dragging = null; 
    } 
    else{ 
     dragging = $(e.target); 
    } 
}) 

$(document.body).mousemove(function(e){ 
    var el_w = $(obj).width(); 
    var el_h = $(obj).height(); 
    if (dragging) { 
     dragging.offset({ 
      top : e.pageY-el_h/2, 
      left : e.pageX-el_w/2 
     }) 
    } 
}) 

我已經搜索谷歌,但幾乎所有的結果表明jQuery UI的... :(

+1

獲得的所有統計我不想說「只使用jQuery UI」,但記住,如果你使用了流行的CDN存在一種可能性,即用戶有一個緩存版本已經從另一個網站。如果這是不可接受的,僅包含拖放的.min.js版本的UI僅爲37KB。 –

回答

0

自定義生成

你可以下載jQuery UI的自定義版本,點擊此鏈接,進入下方,然後點擊下載。

draggable only

尺寸爲32kb。現代網絡服務器gzip的文件,這將導致8.66kb在轉移。它也可以與其他文件結合使用,以減少網絡請求的數量。

替代

驚人的克里斯Coyer寫了一個小插件,模仿$.draggable從jQuery UI的。

:你將不得不修改自己的代碼來得到它做任何形式的彈響等

Draggable without jQuery UI

如果與關閉編譯精縮,你的文件大小爲0.769 kb0.353kb gzipped。

從這個online Closure Compiler