您的位置:首页 > Web前端 > JQuery

jQuery中on()函数的用法笔记

2016-12-06 23:32 351 查看

jQuery中on()函数的用法笔记

1、用法一:on(events,selector,data,handler),

– 当我们要对一个或者多个元素绑定多个事件,同时对应一个事件处理函数时使用

1.1、参数的含义结合代码片一:

a).events:一个或者多个事件名称加命名空间组成中间隔着空格,比如("click")|(“click.one mouseenter.two”);

b).seletor:选择器,用于查找到选择绑定事件的DOM对象,可选,没有指定的时候默认将事件绑定在调用on函数的对象上;

c).data:可选,传入的数据存放在e.data中,再间接传入到事件处理函数之中;

d).handler:事件处理函数,可以用false代替;


代码片公用的html

<ul style="width: 400px;height: 400px;border: solid 1px #000">
<li>1</li>
<li id="two">2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>


代码片一:

(function(){
var data = {
name: "数据",
}
function handler(e){
console.log(e.data);
console.log($(this).html());
}
$("ul").on("click.one","#two",data,handler);
/*  只有点击id为two的li才会触发
输出Object {name: "数据"}
2
*/
$("ul").on("click.one",data,handler);
/* 只要在ul的范围内点击就能够触发
输出 Object {name: "数据"}
<li>1</li>
<li id="two">2</li>
<li>3</li>
<li>4</li>
<li>5</li>
*/
})();


总结:

1、首先如果将事件处理函数分离出来比如handler,在函数内部如果需要使用到event对象,则必须在函数声明的时候
必须设置e形式参数;

2、e.data的输出可以知道data参数是存放在event对象中的

3、对比两次绑定事件的输出:

a).第一次绑定指定了selector,那么事件是绑定在由该s

elector查找到的DOM元素

b).第二次是绑定在调用该on函数的ul上的

c).handler函数的this指向取决于事件绑定在谁上面,所

以两次的$(this).html()输出不一样


2、用法二:on(eventsMap,selector,handler)

– 在需要对一个或者多个对象绑定多个事件,并对应多个事件处理函数时候使用;

2.1、参数的含义结合代码片二分析:

a).eventsMap:一个对象(事件--事件处理函数的映射),即是对象的属性key是事件名,属性值value是事件处理函数;
比如{
click: handler1,
mouseenter: handler2
}

b).seletor:选择器,用于查找到选择绑定事件的DOM对象,可选,没有指定的时候默认将事件绑定在调用on函数的对象上;

c).data:可选,传入的数据存放在e.data中,再间接传入到事件处理函数之中;


代码片二:

var eventsMap = {
click: handler1,
mouseenter: handler2
}
function handler1(e){
console.log("click");
}
function handler2(e){
console.log("mouseenter");
}
$("ul").on(eventsMap);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jquery on-函数