bind / on / click
最后更新于:2022-04-02 03:18:45
[TOC]
## bind / on / click 区别
1. `click` 不支持 动态扩展的元素
2. `on` [推荐]
可监听**动态**扩展的元素,通过第二个`selector`参数,但必须 其父元素不是动态添加的
```
格式: .on(events [,selector] [,data], handler)
$('ul').on('click', 'li', function(){console.log('click');}
$(document).on('click', ".click_class",function(){})
```
3. `bind`
`格式 .bind(events [,eventData], handler)`
缺点:
1. 性能问题,会绑定到所有选择元素上,
2. 不会绑定到动态添加的元素上
3. 页面加载完,才能使用bind. 存在效率问题
优点:
1. 兼容性好,
2. `.click(),.hover()` 是其简化处理结果
3. **如果使用 绑定的是`id`唯一等元素,可优先考虑`bind`**
## on / bind 方法对data 参数的使用
```
function bindClick( event ) {
var type = event.data.type; //可在事件参数的data属性中获取
if (type=="1") {
alert(event.data.msg)
}else if(type =="2"){
alert(event.data.msg)
}
};
$( "p" ).on( "click",{type:"1",msg:"hello"},bindClick );
$( "p" ).on( "click",{type:"2",msg:"word"},bindClick );
```
## 动态绑定点击事件
把动态的类当作on 的第二个参数传入
```
$(document).on('click', ".click_class",function(){
Console.info("run here");
});
```
';