javascript - jQuery 函数的纯 JS 版本

标签 javascript jquery dom-events

我有以下 jQuery 代码(我更改了 div 和函数的名称,不会有太大区别)

$(function(){
    $('#div1').bind('touchend',function(){
        function1();
        function2();
    });
});

$(function(){
    $('#div2').bind('touchend',function(){
        function1();
        function3();
    });
});

这是它的纯 JS 版本,它不起作用。

document.getElementById('div1').addEventListener('touchend',function(){
    function1();
    function2();
},false);

document.getElementById('div2').addEventListener('touchend',function(){
    function1();
    function3();
},false);

如果有人能先解释一下jQuery版本是什么意思,然后指出我用普通js版本有什么错误,我将不胜感激!

[如果您想知道我为什么要这样做,我需要从我正在构建的 phonegap 应用程序中删除 jQuery,以便页面加载速度更快:-)]

最佳答案

您的代码应该可以在任何支持触摸事件 的浏览器/DOM 中运行。我在这里唯一能想到的是您错过了要调用的 DOMContentLoaded 事件,因此尝试获取/查询尚未准备好的元素。

所以你应该把你的代码包装成

document.addEventListener('DOMContentLoaded', function () {
}, false);

当您调用 $(function() {}); 时,jQuery 会自动为您执行此操作。如果你将一个函数传递给 $() 它是 $(document).ready(fnc)

的快捷方式

关于javascript - jQuery 函数的纯 JS 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10412855/

相关文章:

javascript - 获取点击的表格行元素值

javascript - Node.js - 在 Windows 上运行包时无法读取 null 的属性 'toString'

javascript - jQuery 'on' 事件在 'load' 事件后不起作用

javascript - 如何使用 JavaScript 使 html div 显示为单独的表单或窗口?

javascript - 图像处理/JavaScript

javascript - 外部加载的 svg 文件元素的 id

jquery + fadein 回调

jquery - 使用 API 动态 append href 和新 li

javascript - Socket.io动态 "on"绑定(bind)

javascript - 如何禁用 onclick 上的鼠标悬停事件?