jquery draggable element - 移动中的小动作 - 防止onclick fire

时间:2017-06-13 00:00:44

标签: javascript jquery css onclick

我有一个onclick()事件的div:

<div id="my_div" onclick="alert('you clicked me')"></div>

当我向这个div添加一个可拖动的JQUERY时:

$(function() {
    $("#my_div").draggable();
});

它在浏览器中运行良好。 但是使用移动设备;

  • 用户 - 在移动设备上轻击div - div移动的数量非常小。
  • 现在onclick没有开火。

这是典型的吗?还是一些CSS问题? 看起来你必须非常仔细地点击。 我希望大多数人会稍稍移动他们的手指,并且通常会有一些小动作。

如何确保onclick在移动设备上触发 - 无论少量移动?

1 个答案:

答案 0 :(得分:1)

处理点击/点击和拖动事件的方式的差异在各设备之间是如此之大,结果是: nobody都将两者都附加到单个元素。试着找一个例子。如果您这样做,请考虑跨设备/跨浏览器进行测试。

&#34;默认&#34; 解决方案是提供一个&#34;拖动句柄&#34;控制元素(至少应该适合一个手指 - 最小40px * 40px - 通常包含一个移动图标)。并且仅在从拖动句柄启动时启用元素的可拖动行为。

当然,如果你想让你的手柄更大,那么这个元素可以是&#34;拖动手柄&#34;一个稍微大一点的父级,除了该元素还包含一个操作栏(它不会启动任何拖动操作,而是您选择的操作)。