事件绑定的快捷方式 利on进行事件绑定的几种情况

【事件绑定快捷方式】
$("button:first").click(function(){
alert(1);
});

【使用on绑定事件】

① 使用on进行单事件绑定
 $("button").on("click",function(){
 //$(this) 取到当前调用事件函数的对象
console.log($(this).html());
});

② 使用on同时为多个事件,绑定同一函数
$("button").on("mouseover click",function(){
console.log($(this).html())
})

③ 调用函数时,传入自定义参数
$("button").on("click",{name:"jianghao"},function(event){
// 使用event.data.属性名 找到传入的参数
console.log(event.data.name);
})*/

④ 使用on进行多事件多函数绑定
$("button").on({
click:function(){
console.log("click")
},
mouseover:function(){
console.log("mouseOver")
}
});

⑤ 使用on进行事件委派
 >>> 将原本需要绑定到某元素上的事件,改为绑定在父元素乃至根节点上,然后委派给当前元素生效;
 eg:$("p").click(function(){});

 $(document).on("click","p",function(){});
 >>> 作用:
 默认的绑定方式,只能绑定到页面初始时已有的p元素,当页面新增p元素时,无法绑定到新元素上;
 使用事件委派方式,当页面新增元素时,可以为所有新元素绑定事件

$("button").on("click",function(){
var p = $("<p>444444</p>");
$("p").after(p);
});

$("p").click(function(){
alert(1);
});

$(document).on("click","p",function(){
alert(1);
});

off() 取消事件绑定

1. $("p").off(): 取消所有事件
2. $("p").off("click"): 取消点击事件
3. $("p").off("click mouseover"):取消多个事件
4. $(document).off("click","p"):取消事件委派

使用.one() 绑定事件,只能执行一次

$("button").one("click",function(){
alert(1);
})

/* .trigger("event"):自动触发某元素的事件
*
* $("p").trigger("click",["haha","hehe"]); 触发事件时,传递参数
*/
/*$("p").click(function(event,arg1,arg2){
alert("触发了P的click事件"+arg1+arg2);
})

$("button").click(function(){
$("p").trigger("click",["haha","hehe"]);
})*/

时间: 2024-10-15 12:54:17

事件绑定的快捷方式 利on进行事件绑定的几种情况的相关文章

JS(原生)事件委托:为动态创建的节点绑定事件

项目开发中经常需要为动态创建的节点绑定事件, 比如需要创建一个动态列表:在li的数量非常少的时候,为每一个li绑定事件不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(假设),为每个li绑定事件就会对页面性能产生很大的影响.当有大量元素需要绑定相同事件的时候可采用事件委托,将在目标元素上要处理的事件委托给父元素或者祖先元素 优点    事件委托对于web应用程序的性能有如下几个优点:    1.需要管理的函数变少了    2.占用的内存少了    3.javascrip

jQuery事件之on()方法绑定多个选择器,多个事件

这样一个需求,如果用live()方法实现的话 非常简单,容易理解. $('nav li, #sb-nav li, #help li').live('click', function () { // code... }); jquery在1.7版本后,建议大家用on方法代替之前的bind.live.delegate方法.那上面一句如果用on的话,怎么写呢? 其实查看live源码就知道,live实际是委托doucment进行事件委派的.按照这个思路,可以将on方法绑定到document即可. $(d

新元素之前的事件绑定无效(live方法)--事件委托

jq1.7之前 可以用live():绑定事件 ,动态生成的标签也可以绑定上. jq1.7之后live(),方法取消改为on():但是动态生成的元素绑定不上事件了. 1 <ul> 2 <button id="btn">creatEle</button> 3 <li class="li">1111111111</li> 4 <li class="li">1111111111<

jquery移除onclick绑定重新绑定别的函数来执行onclick事件

本文分享了使用jquery移除前面通过onclick绑定的元素的事件,然后重新绑定别的函数来执行onclick事件. 解决方案:· 1.失败方案: $(".edit").removeAttr("onclick");//网上有些资料说jquery1.6+可以使用,但我试过不可以 2.成功方案<更适用于非button标签>: //亲测可用 $(".edit").prop("onclick",null).off(&quo

toggle([speed],[easing],[fn]) 用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件。

toggle([speed],[easing],[fn]) 概述 用于绑定两个或多个事件处理器函数,以响应被选元素的轮流的 click 事件. 如果元素是可见的,切换为隐藏的:如果元素是隐藏的,切换为可见的. 1.9版本 .toggle(function, function, … ) 方法删除,jQuery Migrate(迁移)插件可以恢复此功能.大理石平台生产厂 参数 fn,fn2,[fn3,fn4,...]Function,....V1.0 Removed 1.9 fn:第一数次点击时要执

jQuery事件对象的作用(利用冒泡事件优化)

事件中的Event对象容易被初学者忽略掉,可能大多时候初学者不知道怎么去用它,但有些时候它还是非常有用的 一个标准的"click"点击事件 $(elem).on("click",function(event){ event //事件对象 }) 在不同浏览器之间事件对象的获取, 以及事件对象的属性都有差异.jQuery根据 W3C 标准规范了事件对象,所以在jQuery事件回调方法中获取到的事件对象是经过兼容后处理过的一个标准的跨浏览器对象 这里不在千篇一律的说方法的

a标签包着img事件 ie下 a标签的click事件失效

整个大的背景框有个点击事件, 如果标签结构是(详细的css样式略) a{background:green;} <a href=""> <img src="personal.png"/> <p>我是个人用户</p> </a> a标签有个click事件 像这样的 a标签包着img标签的时候 在ie下点击图片位置的时候 click事件不会触发 解决方式是把a标签改成div <div> <img

Android 开发事件响应之基于监听的事件响应

Android 开发事件响应之基于监听的事件响应 本文将介绍Android 操作系统如何通过监听来实现对事件的响应. Android 开发事件响应之基于监听的事件响应 背景介绍 Android 开发事件响应类型 内部类 匿名内部类 外部类 直接绑定标签 总结 背景介绍 对于任何可视化开发来说,都会涉及到对控件的响应.我们通过举例:实现对Button 按钮的点击来讲解Android 里面对事件相应的办法. Android 开发事件响应类型 在Android 开发中,有两种方式可以对事件作出响应,分

jquery双击事件(dblclick)时,不触发单击事件(click)

在jQuery的事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click).即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblclick)时却会触发两次单击事件(click). 先看一下点击事件的执行顺序: 单击(click):mousedown,mouseout,click: 双击(dblclick):mousedown,mous