需求是把移动端开发的js代码中的所有tap事件和touchend事件改成click事件
开始没注意它用的是zepto,研究了jquery的办法:
思路是在主html文件底部引入一个js文件,在js文件中用jquery遍历所有节点,
然后用jquery的$._data( 目标节点 , ”events“ )方法来获取每个节点的事件,如果有tap或者有touchend事件名,就给该节点绑一个click事件=对应的原事件。(原事件可以从handler里面获取到)
但之后才发现开发用的zepto,结果zepto里面没有$._data()方法去获取元素的事件。现在不知道该怎么办。想问一下zepto有没有相似的方法去获取元素节点上的事件?现在该怎么办?
jquery的做法:
function listener() {
// 获取全部节点
let arr = $("body").children();
// 遍历
for (let i = 0; i < arr.length - 1; i++) {
// 获取由jquery注册过事件的元素
if ($._data(arr[i], "events")) {
let events=$._data(arr[i], "events")
// 判断有没有touchend或tap事件,有就绑click事件
if(events["touchend"]){
arr[i].on("click",events.touchend[0].handler);
}
if(events["tap"]){
arr[i].on("click",events.tap[0].handler);
}
}
}
}