我使用JQuery UI来使元素可拖动,在代码中,可以指定在开始,拖动和结束时要做什么。
但是如何在向左拖动时运行一个函数而在向右拖动时运行另一个函数?
我已将可拖动轴仅限制为x轴。因此元素只能向左或向右移动。
答案 0 :(得分:13)
检查此演示: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;
}
});
答案 1 :(得分:8)
这是一种更简单的方法:
$( "#draggable" ).draggable({
drag: function( event, ui ) {
$(this).text(ui.originalPosition.left > ui.position.left ? 'left' : 'right');
}
});
答案 2 :(得分:0)
我建议您处理start
和stop
事件,并确定停止事件中的位置增量,以确定它是向左还是向右移动: