可拖动 | jQuery 用户界面。如何在拖动事件上添加类

Posted

技术标签:

【中文标题】可拖动 | jQuery 用户界面。如何在拖动事件上添加类【英文标题】:Draggable | Jquery UI. How to addClass on drag event 【发布时间】:2018-04-09 22:38:55 【问题描述】:

我正在尝试创建一个滑块,以便用户拖动滑块球,一旦球被拖动,它就会捕捉到包含元素的末尾并触发一个回调函数(当你解锁屏幕时,想想 7 之前的 ios通过拖动滑块,拖动滑块和屏幕解锁)。我认为最简单的方法是添加一个类,将滑块球的 x 轴更新到其容器的末尾。

所以我用相关的容器元素和轴将元素设置为可拖动的,它可以完美地沿着其容器拖动。

sliderBall.draggable(
          containment: $('div.slider-line'),
          axis: "x"
          );

然后我认为它就像将'addClass'绑定到'drag'事件一样简单:

sliderBall.on('drag',function() 
    $(this).addClass('slider-toggle');
);

奇怪的是选择器被识别为对象而不是 DOM 元素?

谁能帮我解决这个问题?

【问题讨论】:

【参考方案1】:

您可以使用此代码:

HTML

<div class="sliderBall" data-count="1">drag me!</div>
<div id="divDrop"></div>

JS

$(".sliderBall").draggable();

$("#divDrop").droppable(
  drop: function(event, ui)     
    ui.draggable.addClass("dropped")
  
);

Online demo (jsfiddle)

【讨论】:

【参考方案2】:

我已经解决了这个问题,但决定留下这个问题,以防其他人有同样的问题。问题是我正在添加的 CSS 类,由于某种原因正在添加该类,但它不想更改滑块球的 X 位置,除非我在类中使用“transformX”而不是“左”。

【讨论】:

以上是关于可拖动 | jQuery 用户界面。如何在拖动事件上添加类的主要内容,如果未能解决你的问题,请参考以下文章

如何避免jQuery UI可拖动也触发点击事件[重复]

jQuery 可拖动的恢复和停止事件

jQuery 可拖动,放置在父 div 之外时的事件

在 jQuery UI 中克隆可拖动对象时,如何将数据和事件传输到新元素?

将单击与 JQuery 中的可拖动功能分开

如何在使用 jQuery(可拖动和可调整大小)拖动光标时调整图像大小