FastClick简单实现
segmentfault.com/a/119000002361721...
// 业务代码
var $test = document.getElementById('test')
$test.addEventListener('click', function () {
console.log('1 click')
})
// FastClick简单实现
var targetElement = null
document.body.addEventListener('touchstart', function () {
// 关键点1:记录点击的元素
targetElement = event.target
})
document.body.addEventListener('touchend', function (event) {
// 关键点2:阻止默认事件(屏蔽之后的click事件)
event.preventDefault()
var touch = event.changedTouches[0]
// 关键点3:合成click事件,并添加可跟踪属性forwardedTouchEvent
var clickEvent = document.createEvent('MouseEvents')
clickEvent.initMouseEvent('click', true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null)
clickEvent.forwardedTouchEvent = true // 自定义的
targetElement.dispatchEvent(clickEvent)
})
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: