jQuery UI触摸打孔单击事件在Android应用中不起作用[重复]

问题描述 投票:0回答:1

我已使用“ Jqueryui-touch-punch”库进行拖放。拖放功能和事件在Chrome浏览器和IOS Mobile App上正常运行。

问题在于,在Android应用程序中,拖放操作正常,但单击事件在Android App中不起作用。

[在id="clickinEventFired"上的代码拖放,单击事件基本上发生了什么,在chrome浏览器和ios移动应用上正常运行。

但是在Android App中使用相同的代码,拖放工作正常,但click事件无效。当我们单击“拖动我到处”时,始终会触发拖动事件。

[请帮助我,我犯了什么错误。

代码:

$(function() {
  $("#draggable").draggable({
    cursor: 'move',
    start: startDrag,
    //stop: stopDrag}
  });

  $("#clickinEventFired").click(function() {
    alert("Handler for .click() called.");
  });
});

function startDrag() {
  alert('Dragging event is fired');
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js"></script>


<div id="draggable" class="ui-widget-content">
  <p id="clickinEventFired">Drag me around</p>
</div>

谢谢。

javascript jquery jquery-ui jquery-mobile
1个回答
0
投票

对于移动设备,您想更具体一些。

这里是可拖动和可单击项目的示例。

桌面测试:https://jsfiddle.net/Twisty/sd64ux8p/24/

移动测试:https://jsfiddle.net/Twisty/sd64ux8p/24/show/

HTML

<div id="draggable" class="ui-widget">
  <div class="ui-drag-handle">&nbsp;</div>
  <p id="clickinEventFired" class="ui-widget-content">Drag me around</p>
</div>

<div id="log">
</div>

CSS

#log {
  font-family: monospace;
  font-size: 0.75em;
  height: 6em;
  position: absolute;
  bottom: 0;
  overflow: hidden;
}

#log p {
  padding: 0;
  margin: 0;
}

.ui-widget {
  padding: 0;
  border: 1px solid #ccc;
  border-radius: 6px;
  background: #ccc;
  width: 150px;
}

.ui-drag-handle {
  width: 100%;
  height: 18px;
}

.ui-widget-content {
  background: #fff;
  margin: 0;
  padding: 2px;
  border-radius: 3px;
}

JavaScript

$(function() {
  function log(str) {
    $("#log").prepend("<p>" + str + "</p>");
  }
  $("#draggable").draggable({
    cursor: 'move',
    handle: ".ui-drag-handle",
    start: function() {
      log("Drag Start");
    },
    stop: function() {
      log("Drag Stop");
    }
  });

  $("#clickinEventFired").click(function() {
    log("Handler for .click() called.");
  });
});

随着我们添加了一个句柄,我们现在创建一个可视队列,单击并在其中拖动。我们还将事件目标分开,因此现在不能将“单击”与“拖动”事件混淆。

© www.soinside.com 2019 - 2024. All rights reserved.