JQ中事件常见的事件绑定方法

为元素绑定事件的多种方法

第一种
        //为按钮绑定鼠标进入,鼠标离开,点击事件
        $("#btn").click(function () {
            console.log("点击事件");
        });
        $("#btn").mouseenter(function () {
            $(this).css("backgroundColor", "red");
        });
        $("#btn").mouseleave(function () {
            $(this).css("backgroundColor", "green");
        });
        // 链式编程
	   $("#btn").mouseenter(function () {
	            $(this).css("backgroundColor", "red");
	        }).mouseleave(function () {
	            $(this).css("backgroundColor", "green");
	        }).click(function () {
	            console.log("点击事件");
	        });

在这里插入图片描述

第二种
  bind绑定方法
		$("#btn").bind("click", function () {
             console.log("点击事件");
        });
        $("#btn").bind("mouseenter", function () {
            $(this).css("backgroundColor", "red");
        });
        $("#btn").bind("mouseleave", function () {
            $(this).css("backgroundColor", "green");
        });
		//链式编程
		$("#btn").bind("click", function () {
            console.log("点击事件");
        }).bind("mouseenter", function () {
            $(this).css("backgroundColor", "red");
        }).bind("mouseleave", function () {
            $(this).css("backgroundColor", "green");
        });
        //键值对的绑定方式
         $("#btn").bind({
            "click": function () {
                console.log("点击事件");
            }, "mouseenter": function () {
                $(this).css("backgroundColor", "red");
            }, "mouseleave": function () {
                $(this).css("backgroundColor", "green");
            }
        })

在这里插入图片描述

为元素绑定多个相同时间的问题

    		$("#btn").click(function () {
                console.log("点击事件1");
            }).click(function () {
                console.log("点击事件2");
            }).click(function () {
                console.log("点击事件3");
            });

在这里插入图片描述

 			$("#btn").bind("click", function () {
                console.log("点击事件1");
            }).bind("click", function () {
                console.log("点击事件2");
            });
			//bind方法绑定多个相同的事件的时候,如果使用的是键值对的方式,只能执行最后一个
		      $("#btn").bind({"click":function () {
		        console.log("点击事件1");
		      },"click":function () {
		        console.log("点击事件2");
		      }});

在这里插入图片描述

  	     $("#btn").bind("click", function () {
                $("#dv").delegate("p", "click", function () {
                    console.log("点击事件1");
                })
            });

在这里插入图片描述

新创建的元素绑定事件

1、 第一种方式

在这里插入图片描述

 		$("#btn").click(function () {
                $("<p>我是一个p</p>").appendTo($("#dv"));
                // $("p").click(function () {
                //     alert("哈哈");
                // });
                // $("p").bind("click",function () {
                //     alert("哈哈");
                // });
                $("#dv").delegate("p", "click", function () {
                    alert("哈哈");
                });
            })
            // 后创建的 p标签事件 只有delegate 绑定的方法p标签才有事件
            $("#btn2").click(function () {
                //后添加的
                $("<p>这是一个p2</p>").appendTo($("#dv"));
            });

        })
第二种

      //此时on和delegate的作用是一样的,但是参数的顺序是不一样
      $("#btn").click(function () {
        $("<p>这是一个p</p>").appendTo($("#dv"));
        //和delegate是一样,都是在为子元素绑定事件
        $("#dv").on("click","p",function () {
          alert("p被点击了");
        });
      });
      $("#btn2").click(function () {
        $("<p>这是一个p2</p>").appendTo($("#dv"));
      });

总结

    * 对象.事件名字(事件处理函数);--->普通的写法
    * 对象.bind(参数1,参数2);---->参数1:事件的名字,参数2:事件处理函数
    * 前两种方式只能为存在的元素绑定事件,后添加的元素没有事件
    *
    * 下面的两种方式,可以为存在的元素绑定事件,后添加的元素也有事件
    * 对象.delegate("选择器","事件名字",事件处理函数);
    * 父级元素调用方法,代理子级元素绑定事件
    * 对象.on("事件名字","选择器",事件处理函数);
    * 父级元素调用方法,代理子级元素绑定事件
    *
    * 因为delegate方法中是调用的on的方法
    * 所以,以后直接用on就可以了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嘴巴嘟嘟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值