“链接”到可拖动呼叫以启用触摸功能

问题描述

| 我对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;
     },
...等等。 我看过这篇文章:如何使jQuery UI'draggable()'div可拖动以用于触摸屏?它看起来像是我要执行的操作的理想解决方案,但我不确定“将其链接到我的jQuery UI draggable()调用\”上的含义是什么。在我的代码中应该在哪里阻止:
.touch({
    animate: false,sticky: false,dragx: true,dragy: true,rotate: false,resort: true,scale: false
});
走?对不起,这可能是一个愚蠢的问题。我是初学者! :) 谢谢!!     

解决方法

        好吧,链接是这样的,假设您有以下代码:
$(\'#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(...);