我正在使用 JQuery UI 使元素可拖动,并且在代码中,可以指定在开始、拖动和结束时要做什么。
但是我怎样才能在向左拖动时运行一个函数而在向右拖动时运行另一个函数呢?
我已经将可拖动轴限制为仅 x 轴。所以元素只能向左或向右移动。
我正在使用 JQuery UI 使元素可拖动,并且在代码中,可以指定在开始、拖动和结束时要做什么。
但是我怎样才能在向左拖动时运行一个函数而在向右拖动时运行另一个函数呢?
我已经将可拖动轴限制为仅 x 轴。所以元素只能向左或向右移动。
检查这个演示:http: //jsfiddle.net/3NtS9/
您可以通过检查每个原子拖动操作上的前一个事件坐标来做到这一点。
var prevX = -1;
$('div').draggable({
drag: function(e) {
//console.log(e.pageX);
if(prevX == -1) {
prevX = e.pageX;
return false;
}
// dragged left
if(prevX > e.pageX) {
console.log('dragged left');
}
else if(prevX < e.pageX) { // dragged right
console.log('dragged right');
}
prevX = e.pageX;
}
});
Here's an easier way to do it:
$( "#draggable" ).draggable({
drag: function( event, ui ) {
$(this).text(ui.originalPosition.left > ui.position.left ? 'left' : 'right');
}
});
我建议您处理start
andstop
事件并确定停止事件中的位置增量以获取它是向左还是向右移动: