zepto中的事件

ready与onload的区别:

    <script>
        //DOM加载完毕(不包括图片等)
        $(document).ready(function(){

        })

        全部文件加载完毕(html文件+css文件+js文件+图片等)
        window.onload=(){

        }
    </>

综上所述,其实ready比onload要快,一般建议使用ready

 

事件开头的几种简写方式:

        //写法一
        $(document).ready(function(){

        })

        写法二
        $(写法三
        $().ready((){

        })

 

事件绑定:

bind  on   直接写事件(简写) 

<!DOCTYPE html>
html lang="en"head>
    meta charset="UTF-8"title>demoname="viewport" content="width=device-width,initial-scale=1,user-scalable=no"style>
        .pink{color:pink;}
        .bigfont-size30px
        .bgBluebackground-colorlightblue}
    bodydiv class="div">divdiv>

    script src="zepto.min.js"></

        $(document).ready((){
            $(".div).bind(click,(e){
                console.log(bind绑定事件);
            })

            $().on(on绑定事件).click(简写,直接绑定);
            })
        });

    html>

 

 

 

事件冒泡与事件捕获:

zepto不支持事件捕获

 

 

id="grandParent">
        ="parent">
            ="child">child(){
            /*
            事件冒泡:
            顶级
            ...
            grandParent
            parent
            child 点击之后,向上冒泡,只要绑定过事件的都会被触发
            */
            $(#grandParentgrandParent被点击#parentparent被点击#childchild被点击);
            })
        });
    >    

 

 

(){

            
            事件捕获:
            顶级
            ...
            grandParent
            parent
            child 点击之后,从上向下冒泡,只要绑定过事件的都会被触发
            */
            zepto不支持,用原生js演示
            默认是false,事件冒泡;使用事件捕获设置true
            var grandParentdocument.getElementById(grandParent),parent);

            grandParent.addEventListener((){
                console.log();
            },1)">true);

            parent.addEventListener();
            
            child.addEventListener();
        });

    >

 

 

事件委托或代理:

绑定事件非常消耗性能

    ulli>1>2>3>4>5>6>

bind  click是简写,绑定了6次,耗性能

            bind  click是简写
            绑定了6次,耗性能
            $("li").bind("click",(){
                console.log("bind");
            });
            $("li").click((){
                console.log("click");
            });

 

 

one 只绑定一次

            one 只绑定一次
            $("li").one("click",1)">(){
                console.log("one");
            })

 

针对单个li来说,只有第一次点击有效,之后点击无效

 

live 绑定在document上

利用事件冒泡的方式,只绑定了一次,就叫做事件委托或者事件代理

缺点是需要一直冒泡到顶级,如果层级多也很耗性能,因此被弃用

            live 绑定在document上
            利用事件冒泡的方式,只绑定了一次,就叫做事件委托或者事件代理
            缺点是一直冒泡到顶级,如果层级多也不好,因此被弃用
            $("li").live("click",1)">(){
                console.log("live");
            })

 

delegate 绑定在父元素上

利用事件冒泡的方式,只绑定了一次,就叫做事件委托或者事件代理

多了一个参数,指定触发事件的子元素

            delegate 绑定在父元素上
            多了一个参数,指定触发事件的子元素
            $("ul").delegate("li","click",1)">(){
                console.log("delegate");
            })

 

on 比较万能,推荐使用

利用事件冒泡的方式,只绑定了一次,就叫做事件委托或者事件代理

与delegate类似,指定一个参数,不过参数顺序不一样

            on 比较万能
            与delegate类似,指定一个参数,不过参数顺序不一样
            $("ul").on("click","li",1)">(){
                console.log("on");
            })

 

unbind  off 解除绑定

            事件委托或代理,绑定事件
            $("ul").on("click",1)">);
            })

            解除事件绑定
            $("ul").unbind();
            解除事件绑定
            $("ul").off();

 

自定义事件

            绑定自定义事件
            $("div").on("cyy",1)">(){
                console.log("cyy自定义事件"触发自定义事件
            $("div").trigger("cyy");

 

 

命名空间

            $("div").bind("click",1)">(){
                console.log("一般click事件");
            });

            $("div").bind("click.cyy",1)">(){
                console.log("带命名空间的click事件");
            });

            解绑所有click事件
            $("div").unbind("click");

            解绑指定命名空间的click事件
            $("div").unbind(".cyy");

 

绑定多个事件:

多个事件执行相同操作,用空格分隔

多个事件执行不同操作,可以使用链式操作

            多个事件执行相同操作
            $("div").bind("click touchstart",1)">(){
                console.log("执行click和touchstart"多个事件执行不同操作
            $("div").bind("click",1)">(){
                console.log("执行click");
            }).bind("touchstart",1)">(){
                console.log("执行touchstart");
            });

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


HTML5和CSS3实现3D展示商品信息的代码
利用HTML5中的Canvas绘制笑脸的代码
Html5剪切板功能的实现
如何通过HTML5触摸事件实现移动端简易进度条
Html5移动端获奖无缝滚动动画实现
关于HTML5和CSS3实现机器猫的代码
HTML5使用DOM进行自定义控制
使用HTML5 Canvas绘制阴影效果的方法
使用PHP和HTML5 FormData实现无刷新文件上传
如何解决HTML5 虚拟键盘出现挡住输入框的问题
HTML5中div和section以及article的区别分析
html5和CSS 实现禁止IOS长按复制粘贴功能
html5 touch事件实现触屏页面上下滑动
canvas 模拟实现电子彩票刮刮乐的代码
HTML5 Plus 实现手机APP拍照或相册选择图片上传的功能
Android自定义环形LoadingView效果
HTML5 canvas绘制五角星的方法
html5使用html2canvas实现浏览器截图
使用Canvas处理图片的方法介绍
利用Canvas模仿百度贴吧客户端loading小球的方法