dd5saber 2021-09-06 16:50
浏览 13
已结题

关于zepto如何获取元素上由zepto注册的事件,jquery

需求是把移动端开发的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);
                }
            }
        }
    }
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 9月14日
    • 创建了问题 9月6日