jQuery事件绑定

1.普通事件绑定

$("#btn").on("click",function(){
    console.log("我被点击了")
})

给事件添加命名空间

$("#btn").on("click.myClick",function(){
    console.log("我被点击了")
})
  // .myClick 就是添加的命名空间,用来标识本次事件,删除事件的时候方便指定
$("#btn").off("click.myClick")  // 仅仅解绑了上面的那个事件

2.事件代理

$("ul").on("click", "li", function(){
    var text = $(this).text()
    console.log(text)
})

3.可以在绑定的时候给事件处理程序传递一些参数

$('div').on('click', {name: 'Byron', age: 24}, function(e){
    console.log(e.data);
});

4.bind、unbind、delegate、live、on、off都有什么作用

  • bind:给元素绑定一个或多个事件
$("#btn").bind("click.myClick", function() {
    console.log("我被点击了")
})
  • unbind:给元素解绑事件
$("#btn").unbind("click.myClick")
  • delegate:用于事件代理,为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数;适用于当前或未来的元素(比如由脚本创建的新元素)。
$("ul").delegate("li", "click", function() {
    var text = $(this).text()
    console.log(text)
})
  • live():这种方法是将页面的document元素作为事件代理元素,太消耗资源,已经过时。在新版本中推荐用.on()法,即时在旧版本中,也推荐使用.delegate()方法来取代.live()方法。
  • on:在选定的元素上绑定一个或多个事件处理函数,提供绑定事件处理的所有功能。
    //普通事件绑定
$("#btn").on("click",function(){
    console.log("我被点击了")
})
    //事件代理绑定
$("ul").on("click", "li", function() {
    var text = $(this).text()
    console.log(text)
})
  • off:解除事件绑定
$("#btn").off("click.myClick")

推荐使用:
on方法,因为既能普通绑定事件,也能事件代理绑定

注意:on的事件代理和delegate的事件代理,写法不一样,子元素和触发事件的位置不同

    //on的事件代理 
$("ul").on("click", "li", function() {
  var text = $(this).text()
  console.log(text)
})
    //delegate的事件代理
$("ul").delegate("li", "click", function() {
  var text = $(this).text()
  console.log(text)
})
  /*li和click的位置不一样*/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容