2011-06-15 40 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

相关问题