我想在触发touchend事件时获取touchstart.pageX值,但我没有得到确切的值。它给了我touchend事件的pageX值。我做错了什么?
(function($){
$.fn.extend({
//pass the options variable to the function
swipeTest: function(options) {
var touchStart;
var options = $.extend(defaults, options);
//initilaized objects
function init(thisObj){
thisObj.addEventListener('touchstart', function(e) {
var touch = e.touches[0] || e.changedTouches[0];
touchStart = touch;
console.log('Value of touchStart.pageX in touchstart method: ' + touchStart.pageX);
}, false);
thisObj.addEventListener('touchend', function(e) {
var touch = e.touches[0] || e.changedTouches[0];
console.log('Value of touchStart.pageX in touchend method: ' + touchStart.pageX);
}, false);
}
return this.each(function() {
init(this);
});
}
});
})(jQuery);
在元素上滑动后,我在控制台中获取此信息(从左右滑动)
Value of touchStart.pageX in touchstart method: 132
Value of touchStart.pageX in touchend method: 417
Value of touchStart.pageX in touchstart method: 32
Value of touchStart.pageX in touchend method: 481
乳清我在这两种方法中得不到同样的价值?我指的是同一个变量!!
答案 0 :(得分:1)
您应该在结束事件中获取touch变量的.target值。这就是触摸的起点。你甚至不需要touchStart变量。结束事件中的触摸包含您需要的所有信息。
//in your touchend handler, after touch = blah blah blah
var startnode = touch.target; //gets you the starting node of the touch
var x = startnode.pageX
var y = startnode.pageY