2012-07-29 73 views
0

我已經聯繫到了這個開發人員,他表示我會自己修改代碼來支持這種方法,因爲當前編寫的代碼不是非常好用......我試圖修改沒有100 %成功。如何修改jcrop以支持黑莓觸控板?

目前JCrop正在使用jquery來跟蹤.mousedown以開始選擇,.mouseup來接受/停止選擇。當您使用jcrop單擊觸控板時,黑莓設備(帶觸控板)會發生什麼情況,它會在您移動光標時開始繪製選區(您不能單擊(按住)並在觸控板上拖動其更多的單擊事件)。問題是當你再次點擊時,它將刪除選擇並開始從當前光標位置重新繪製它。在我看來,JCrop正在使用mousedown來跟蹤點擊和拖動選擇過程,然後mouseup釋放選擇並保留裁剪框。

我想過分配像clickCount這樣的變量來跟蹤點擊和一個函數來觸發事件。因此,每當用戶點擊它時,都會運行一個函數來跟蹤clickCount和放棄開始選擇或結束選擇事件。

下面是所有引用.mousedown和.mouseup:

var $trk = newTracker().width(boundx + (bound * 2)).height(boundy + (bound * 2)).css({ 
     position: 'absolute', 
     top: px(-bound), 
     left: px(-bound), 
     zIndex: 290 
    }).mousedown(newSelection); 

function dragDiv(ord, zi) //{{{ 
     { 
     var jq = $('<div />').mousedown(createDragger(ord)).css({ 
      cursor: ord + '-resize', 
      position: 'absolute', 
      zIndex: zi 
     }); 

     if (Touch.support) { 
      jq.bind('touchstart', Touch.createDragger(ord)); 
     } 

     $hdl_holder.append(jq); 
     return jq; 
     } 

var $track = newTracker().mousedown(createDragger('move')).css({ 
     cursor: 'move', 
     position: 'absolute', 
     zIndex: 360 
     }); 
function toFront() //{{{ 
     { 
     $trk.css({ 
      zIndex: 450 
     }); 
     if (trackDoc) { 
      $(document) 
      .bind('mousemove',trackMove) 
      .bind('mouseup',trackUp); 
     } 
     } 
     //}}} 
     function toBack() //{{{ 
     { 
     $trk.css({ 
      zIndex: 290 
     }); 
     if (trackDoc) { 
      $(document) 
      .unbind('mousemove', trackMove) 
      .unbind('mouseup', trackUp); 
     } 
     } 
if (!trackDoc) { 
     $trk.mousemove(trackMove).mouseup(trackUp).mouseout(trackUp); 
     } 

幫助/意見將不勝感激。由於

回答

0

什麼沿此線的東西:

var isDragging = false; 

function onMouseDown(event) { 
    isDragging = !isDragging; 
} 

function onMouseUp(event) { 
    if (isDragging) { 
     event.preventDefault(); 
    } 
} 

window.addEventListener('mousedown', onMouseDown, false); 
window.addEventListener('mouseup', onMouseUp, false); 

這樣,onMouseUp應該只在技術上每隔火災等時間,有可能防止發佈觸發從停止的選擇。這當然需要與您的代碼進行更深入的整合。