jquery学习8_事件机制

jquery学习8_事件机制

点击事件的注册

// 普通click处理
$("#btn").click(function () {
    $("<p>我是新增加的p元素</p>").appendTo("div");
})
​
// bind绑定事件
$("p").bind("click,mouseenter",function () {
    alert("hahah");
})
​
// bind绑定多个处理
$("p").bind({
  click:function () {
    alert("呵呵");
  },
  mouseenter:function () {
    alert("嘿嘿");
  }
})
​

代理事件注册

上面例子当中,我们对新增加的p标签的点击事件是注册不成功的(js只执行一遍)。我们需要采用delegate

// 第一个参数:selector,要绑定事件的元素
// 第二个参数:事件类型
// 第三个参数:事件处理函数
$("div").delegate("p", "click", function(){
    //为 .parentBox下面的所有的p标签绑定事件
});

这里委托的意思是:将p标签的点击事件委托给我们div。也就是子元素的点击事件冒泡给div,再由div决定谁去执行点击事件。其实点击事件是注册给div这个父元素的

On的事件点击

jQuery1.7之后,jQuery用on统一了所有事件的处理方法。

// 第一个参数:events,绑定事件的名称可以是由空格分隔的多个事件(标准事件或者自定义事件)
// 第二个参数:selector, 执行事件的后代元素(可选),如果没有后代元素,那么事件将有自己执行。
// 第三个参数:data,传递给处理函数的数据,事件触发的时候通过event.data来使用(不常使用)
// 第四个参数:handler,事件处理函数
$(selector).on(events[,selector][,data],handler);
​
// 表示给$(div)绑定事件,并且由自己触发,不支持动态绑定。
$(div).on( "click", function() {});
​
​
// 表示给$(div)绑定代理事件,当必须是它的内部元素p才能触发这个事件,支持动态绑定
// 给div内部元素p进行事件绑定,类似于委托事件
$("div").on("click","p",function () {
    alert("ehhehe ")
})

注意:在既有自己的事件又有委托事件的时候,先执行委托事件。

事件解绑

// 解绑匹配元素的所有事件
$(selector).off();
// 解绑匹配元素的所有click事件
$(selector).off("click");

事件触发

$(selector).trigger("click");

传入参数至绑定事件中

// event传入附加内容
$("p").on("click",100,function (e) {
    alert(e.data);
})
​
//screenX和screenY 对应屏幕最左上角的值
//clientX和clientY 距离页面左上角的位置(忽视滚动条)
//pageX和pageY 距离页面最顶部的左上角的位置(会计算滚动条的距离)
​
//event.keyCode 按下的键盘代码
​
                      //event.stopPropagation() 阻止事件冒泡行为
//event.preventDefault()  阻止浏览器默认行为
//return false:既能阻止事件冒泡,又能阻止浏览器默认行为。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值