我想让'dragstart'像点击一样工作。 例如:
// 1. Get the click position
$('#foo').on('click',function(e){ alert(e.pageX+':'+e.pageY);}
// 2. Get dragstart position, nothing more
$('#foo').on('dragstart',function(e){ alert(e.pageX+':'+e.pageY);}
这就是我想要实现的目标。
但是当然第二个例子不起作用,我不知道如何使它成为可能。简单地说,我需要获得一点点的引导。
我也使用jQuery Mobile,所以也许它有一些我可以使用的方法?我想在没有任何其他库的情况下实现这一点,因此纯jQuery将是最佳解决方案。
为什么呢?问题是,有时用户会快速点击特定元素 - 因此,他们会触发dragstart事件而不是点击。为了解释我的功能,我需要触发事件的位置。
修改
我使用 mousedown 事件而不是dragstart解决了这个问题。 Mousedown正确地给出了点击的坐标,但是知道是否有办法获得dragstart的坐标仍然会很好。
答案 0 :(得分:1)
$("#foo").draggable({
create: function (e, ui) {
$('#foo').on('click', function (event) {
alert('click: ' + event.pageX + ':' + event.pageY);
});
$('#foo').on('dragstart', function (event) {
alert('dragstart: ' + event.pageX + ':' + event.pageY);
});
}
});
答案 1 :(得分:0)
你可以从jQuery.UI调用draggable(),它有一个名为start的属性,你可以绑定一个函数来获取坐标。
示例:
$('#foo').draggable({
[other options]
start: function(event) {
alert(event.clientX+':'+event.clientY);
}
});