我需要在iOS设备上通过鼠标和触摸使项目可拖动,而无需安装任何新库,例如jquery-ui。
在这里找到答案https://stackoverflow.com/a/16448981/8799440 对于鼠标事件非常有效。
以下是从该答案中检索的内容:
function handle_mousedown(e){
window.my_dragging = {};
my_dragging.pageX0 = e.pageX;
my_dragging.pageY0 = e.pageY;
my_dragging.elem = this;
my_dragging.offset0 = $(this).offset();
function handle_dragging(e){
var left = my_dragging.offset0.left + (e.pageX - my_dragging.pageX0);
var top = my_dragging.offset0.top + (e.pageY - my_dragging.pageY0);
$(my_dragging.elem)
.offset({top: top, left: left});
}
function handle_mouseup(e){
$('body')
.off('mousemove', handle_dragging)
.off('mouseup', handle_mouseup);
}
$('body')
.on('mouseup', handle_mouseup)
.on('mousemove', handle_dragging);
}
$('#id').mousedown(handle_mousedown);
我尝试重用此代码,将鼠标事件的所有触摸方式(例如touchstart
而不是mousedown
但是,按预期似乎不起作用,我怀疑这是因为touch API与鼠标API完全不同
有没有可以解决这个问题的方法?
谢谢!