iphone - 使用 Touchevent 在 jQuery 中拖放(iPhone 浏览器)

标签 iphone jquery drag-and-drop touchesmoved touch-event

我使用 jQuery 来监听 touchstart、touchmove 和 touchend,并且我能够在 iphone Safari 中拖动“dragitem”(基于 touchmove 的位置更改)。但现在的问题是当“dragitem”拖动到“dropArea”时我如何做出dropArea响应。

例如,当“dragitem”在“dropArea”内拖动时,“dropArea”将突出显示/发光、更改背景颜色等,但当它离开时,“dropArea”将保持正常。有什么想法吗?

提前致谢。

HTML:

<div class='dragArea' >
 <div id='box1' class='dragitem'>
 </div>
 <div id='box2' class='dragitem'>
 </div>
</div>

<div class='dropArea'></div>

jQuery:

var startTouchX = null;
var startTouchY = null;
var moveTouchX = null;
var moveTouchY = null;
var startPositionX = null;
var startPositionY = null;

$('.dragitem').bind('touchstart',function(event){
    event.preventDefault();
    var e = event.originalEvent;
    startTouchX = e.targetTouches[0].pageX;
    startTouchY = e.targetTouches[0].pageY;
    startPositionX = $(this).css('left');
    startPositionY = $(this).css('top');
});
$('.dragitem').bind('touchmove', function(event){
    event.preventDefault();
    var e = event.originalEvent;
    moveTouchX = e.targetTouches[0].pageX;
    moveTouchY = e.targetTouches[0].pageY;
    $('#movex').text(moveTouchX);
    $('#movey').text(moveTouchY);
    $(this).css({top: (moveTouchY - 50), left: (moveTouchX - 5)});
});
$('.dragitem').bind('touchend', function(event){
    $(this).animate({top: startPositionY, left: startPositionX}, 'fast');
});

最佳答案

我会检查移动处理程序中 $('.dragitem') 数组和 $('.dropArea.') 的 offset() ... 或间隔。

关于iphone - 使用 Touchevent 在 jQuery 中拖放(iPhone 浏览器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4311150/

相关文章:

iphone - 获取设置 View 的当前方向的最佳方法是什么

javascript - 为什么 $ ("body") == $ ("body") 返回 false?

java - 使用拖放重新排序 JList

delphi - 在 Delphi 拖放中检查复制与移动

ios - 使用安全框架在 Objective-C 中以编程方式创建 x509 证书

iphone - iCarousel 以编程方式停在索引处

ios - 如何显示一个 ViewController 然后关闭它以显示一个 UISplitViewController?

javascript - 正则表达式: Match text node only in a tag

javascript - 在 Javascript 中检测 parent 和祖 parent 的链接

javascript - 如何使用 JavaScript 或 jQuery 一次拖动多个元素?