2011-06-15 42 views
2

我對jquery ui非常陌生,但由於我的項目的性質,我有點被拋到了最後!基本上我需要幫助的是,我有一個文件將某些自定義應用於jQuery UI可拖動小部件,並且我想進一步自定義以啓用觸摸功能,以便該小部件在移動觸摸屏設備上可用。也就是說,我的代碼看起來像這樣:「鏈接」到可拖動的調用以啓用觸摸功能

/* 
* jQuery UI Draggable 
* 
* Depends: 
    * jquery.ui.core.js 
    * jquery.ui.mouse.js 
    * jquery.ui.widget.js 
    */ 

(function($, undefined) { 

$.widget("ui.draggable", $.ui.mouse, { 
    widgetEventPrefix: "drag", 
    options: { 
     addClasses: true, 
     appendTo: "parent", 
     axis: false, 
     connectToSortable: false, 
     containment: false, 
     cursor: "auto", 
     cursorAt: false, 
     grid: false, 
     handle: false, 
     helper: "original", 
     iframeFix: false, 
     opacity: false, 
     refreshPositions: false, 
     revert: false, 
     revertDuration: 500, 
     scope: "default", 
     scroll: true, 
     scrollSensitivity: 20, 
     scrollSpeed: 20, 
     snap: false, 
     snapMode: "both", 
     snapTolerance: 20, 
     stack: false, 
     zIndex: false 
    }, 
    _create: function() { 

     if (this.options.helper == 'original' &&  !(/^(?:r|a|f)/).test(this.element.css("position"))) 
      this.element[0].style.position = 'relative'; 

     (this.options.addClasses && this.element.addClass("ui-draggable")); 
     (this.options.disabled && this.element.addClass("ui-draggable-disabled")); 

     this._mouseInit(); 

    }, 

    destroy: function() { 
     if(!this.element.data('draggable')) return; 
     this.element 
      .removeData("draggable") 
      .unbind(".draggable") 
      .removeClass("ui-draggable" 
       + " ui-draggable-dragging" 
       + " ui-draggable-disabled"); 
     this._mouseDestroy(); 

     return this; 
    }, 

...等等。我看過這篇文章:How can I make a jQuery UI 'draggable()' div draggable for touchscreen?,它看起來像我想要做的理想解決方案,但我不確定是什麼意思「鏈接到我的jQuery UI draggable()調用」。哪裏在我的代碼應該塊:

.touch({ 
    animate: false, 
    sticky: false, 
    dragx: true, 
    dragy: true, 
    rotate: false, 
    resort: true, 
    scale: false 
}); 

去?這可能是一個愚蠢的問題,對不起。我是初學者! :) 謝謝!!

回答

1

嘛,鏈接像這樣的作品,想象你有下面的代碼:

$('#someDiv').show(); 
$('#someDiv').addClass('someClass'); 
$('#someDiv').removeClass('someOtherClass'); 

相反,你可以鏈接這些調用像這樣:

$('#someDiv').show().addClass('someClass').removeClass('someOtherClass'); 

這工作,因爲jQuery函數之後返回元素,因此你可以在同一個元素或結果元素上「鏈接」函數調用。

而在你的情況,我相信它應該在通話結束時以$ .widget之後被鏈接:

$.widget(...).touch({ 
    animate: false, 
    sticky: false, 
    dragx: true, 
    dragy: true, 
    rotate: false, 
    resort: true, 
    scale: false 
}); 

或者其他方式是可以做到的:

$('#yourElement').draggable(...).touch(...); 
+0

真棒;那麼我如何包含jqtouch插件?我下載了這個文件並保存在同一個目錄下,那麼java中的「include xyz」的javascript版本以及我的代碼應該放在哪裏? – jqcoder 2011-06-15 14:12:37

+0

與jquery相同的方法...'' – Jeff 2011-06-15 14:17:34

相關問題