Как получить значение touchstart в событии touchend?

Я хочу получить значение touchstart.pageX при возникновении события touchend, но не получаю точное значение. Это дает мне pageX значение события touchend. Что я делаю не так?

(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

Почему я не получаю одинаковое значение в обоих методах? Я указываю на ту же переменную, хотя!

1 ответ

Решение

Вы должны получить значение.target переменной touch в вашем конечном событии. Вот откуда началось прикосновение. Вам даже не нужна переменная 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
Другие вопросы по тегам