【问题标题】:Uncaught SyntaxError: Unexpected token < in dev_touch.jsUncaught SyntaxError: Unexpected token < in dev_touch.js
【发布时间】:2015-09-19 10:20:28
【问题描述】:

我是 jquery 的新手。我找到了获取触摸事件的代码。但它表明了这一点。我不知道如何解决这个问题。

错误信息

Uncaught SyntaxError: Unexpected token

我的代码: dev_touch.js

;(function($) {
'use strict'

var $html = $('html');
    mainBody = main.find('body');
main.addClass("dev_toucher");
mainBody.append("<div></div>").attr("class", "dev_ui_toucher");


if (typeof $html.createEvent !== 'function') return false // no tap events here
// helpers
var useJquery = typeof jQuery !== 'undefined',
msPointerEnabled = !!navigator.pointerEnabled || navigator.msPointerEnabled,
isTouch = (!!('ontouchstart' in win) && navigator.userAgent.indexOf('PhantomJS') < 0) || msPointerEnabled,
msEventType = function(type) {
    var lo = type.toLowerCase(),
    ms = 'MS' + type
    return navigator.msPointerEnabled ? ms : lo
    },
touchevents = {
    touchstart: msEventType('PointerDown') + ' touchstart',
    touchend: msEventType('PointerUp') + ' touchend',
    touchmove: msEventType('PointerMove') + ' touchmove'
    },
setListener = function(elm, events, callback) {
    var eventsArray = events.split(' '),
    i = eventsArray.length

    while (i--) {
        elm.addEventListener(eventsArray[i], callback, false)
        }
    },

getPointerEvent = function(event) {
    return event.targetTouches ? event.targetTouches[0] : event
    },

getTimestamp = function () {
    return new Date().getTime()
    },
sendEvent = function(elm, eventName, originalEvent, data) {
    var customEvent = $html.createEvent('Event')
    customEvent.originalEvent = originalEvent
    data = data || {}
    data.x = currX
    data.y = currY
    data.distance = data.distance

    // jquery
    if (useJquery) {
        customEvent = $.Event(eventName, {originalEvent: originalEvent})
        jQuery(elm).trigger(customEvent, data)
        }

    // addEventListener
    if (customEvent.initEvent) {
        for (var key in data) {
            customEvent[key] = data[key]
            }
        customEvent.initEvent(eventName, true, true)
        elm.dispatchEvent(customEvent)
        }

    // inline
    if (elm['on' + eventName])
    elm['on' + eventName](customEvent)
},

onTouchStart = function(e) {
    var pointer = getPointerEvent(e)
    // caching the current x
    cachedX = currX = pointer.pageX
    // caching the current y
    cachedY = currY = pointer.pageY

    timestamp = getTimestamp()
    tapNum++
    // we will use these variables on the touchend events
},
onTouchEnd = function(e) {

    var eventsArr = [],
    now = getTimestamp(),
    deltaY = cachedY - currY,
    deltaX = cachedX - currX

    // clear the previous timer in case it was set
    clearTimeout(tapTimer)

    if (deltaX <= -swipeThreshold)
    eventsArr.push('swiperight')

    if (deltaX >= swipeThreshold)
    eventsArr.push('swipeleft')

    if (deltaY <= -swipeThreshold)
    eventsArr.push('swipedown')

    if (deltaY >= swipeThreshold)
    eventsArr.push('swipeup')

    if (eventsArr.length) {
    for (var i = 0; i < eventsArr.length; i++) {
            var eventName = eventsArr[i]
            sendEvent(e.target, eventName, e, {
                distance: {
                    x: Math.abs(deltaX),
                    y: Math.abs(deltaY)
                    }
                })
            }
        } else {

            if (
                cachedX >= currX - tapPrecision &&
                cachedX <= currX + tapPrecision &&
                cachedY >= currY - tapPrecision &&
                cachedY <= currY + tapPrecision
                ){
                    if((timestamp + tapThreshold) - now >= 0){
                        // Here you get the Tap event
                        sendEvent(e.target, (tapNum === 2) && (target === e.target) ? 'dbltap' : 'tap', e)
                        target= e.target
                    }
                    else if((timestamp + longtapThreshold) - now <= 0){
                        // Here you get the Tap event
                        sendEvent(e.target,'longtap', e)
                        target= e.target
                    }
                }

            // reset the tap counter
        tapTimer = setTimeout(function() {
            tapNum = 0
        }, dbltapThreshold)

    }
},
onTouchMove = function(e) {
    var pointer = getPointerEvent(e)
    currX = pointer.pageX
    currY = pointer.pageY
    },
swipeThreshold = win.SWIPE_THRESHOLD || 100,
tapThreshold = win.TAP_THRESHOLD || 150, // range of time where a tap event could be detected
dbltapThreshold = win.DBL_TAP_THRESHOLD || 200, // delay needed to detect a double tap
longtapThreshold = win.LONG_TAP_THRESHOLD || 1000, // delay needed to detect a long tap
tapPrecision = win.TAP_PRECISION / 2 || 60 / 2, // touch events boundaries ( 60px by default )
justTouchEvents = win.JUST_ON_TOUCH_DEVICES || isTouch,
tapNum = 0,
currX, currY, cachedX, cachedY, tapTimer, timestamp, target

//setting the events listeners
setListener($html, touchevents.touchstart + (justTouchEvents ? '' : ' mousedown'), onTouchStart)
setListener($html, touchevents.touchend + (justTouchEvents ? '' : ' mouseup'), onTouchEnd)
setListener($html, touchevents.touchmove + (justTouchEvents ? '' : ' mousemove'), onTouchMove)


//test.on('tap',updateHtml);
//test.on('dbltap',updateHtml);
//test.on('longtap',updateHtml);
//test.on('swipeup',updateHtml);
//test.on('swipedown',updateHtml);
//test.on('swipeleft',updateHtml);
//test.on('swiperight',updateHtml);

}(document, window))

谁能帮忙?

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    我愿意为您提供 HTML 文件而不是 JavaScript 文件。检查方法如下:

    • 右键单击页面上的任意位置
    • 选择“检查元素”
    • 找到您的 JS 文件并检查其内容。

    查看图片以了解 Firefox 的图示。

    【讨论】:

      猜你喜欢
      • 2018-01-07
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-04
      • 1970-01-01
      相关资源
      最近更新 更多