本文实例讲述了jquery绑定事件 bind和on的用法与区别。分享给大家供大家参考,具体如下:bind和on都是给元素绑定事件用的,其最大的区别就是事件冒泡事件冒泡事件冒泡也是委托事件的原型,事件委托就是子类的事情委托给父类的去做委托事件的原型子类的事情委托给父类的去做最直观的区别就是on绑定比bind绑定多一个参数'childSelector'多一个参数语法$(selector).on(event,childSelector,data,function)$(selector).on(event,childSelector,data,function)






参数

描述





event

必需。规定要从被选元素移除的一个或多个事件或命名空间。



由空格分隔多个事件值,也可以是数组。必须是有效的事件。





childSelector

可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。





data

可选。规定传递到函数的额外数据。





function

可选。规定当事件发生时运行的函数。








参数

描述





event

必需。规定要从被选元素移除的一个或多个事件或命名空间。



由空格分隔多个事件值,也可以是数组。必须是有效的事件。





childSelector

可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。





data

可选。规定传递到函数的额外数据。





function

可选。规定当事件发生时运行的函数。





参数

描述

参数描述

event

必需。规定要从被选元素移除的一个或多个事件或命名空间。



由空格分隔多个事件值,也可以是数组。必须是有效的事件。

eventevent必需。规定要从被选元素移除的一个或多个事件或命名空间。



由空格分隔多个事件值,也可以是数组。必须是有效的事件。

childSelector

可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。

childSelectorchildSelector可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。

data

可选。规定传递到函数的额外数据。

datadata可选。规定传递到函数的额外数据。

function

可选。规定当事件发生时运行的函数。

functionfunction可选。规定当事件发生时运行的函数。$(selector).bind(event,data,function,map)$(selector).bind(event,data,function,map)






参数

描述





event

必需。规定添加到元素的一个或多个事件。



由空格分隔多个事件值。必须是有效的事件。





data

可选。规定传递到函数的额外数据。





function

必需。规定当事件发生时运行的函数。





map

规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。








参数

描述





event

必需。规定添加到元素的一个或多个事件。



由空格分隔多个事件值。必须是有效的事件。





data

可选。规定传递到函数的额外数据。





function

必需。规定当事件发生时运行的函数。





map

规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。





参数

描述

参数描述

event

必需。规定添加到元素的一个或多个事件。



由空格分隔多个事件值。必须是有效的事件。

eventevent必需。规定添加到元素的一个或多个事件。



由空格分隔多个事件值。必须是有效的事件。

data

可选。规定传递到函数的额外数据。

datadata可选。规定传递到函数的额外数据。

function

必需。规定当事件发生时运行的函数。

functionfunction必需。规定当事件发生时运行的函数。

map

规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。

mapmap规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。{event:function, event:function, ...})

bind只能给符合条件的元素本身添加事件

on可以将子元素的事件委托给父元素进行处理,而且可以给动态添加的元素加上绑定事件
bind只能给符合条件的元素本身添加事件on可以将子元素的事件委托给父元素进行处理,而且可以给动态添加的元素加上绑定事件也就是对于新添加的元素如果是on绑定,符合条件的新元素也会绑定事件,如果是bind则不影响新元素比如下例:


  • 第一个子元素


  • 第二个子元素


  • 第三个子元素






  • 第一个子元素


  • 第二个子元素


  • 第三个子元素



我们想给所有li添加click事件,可以用on:
$('ul').on('click','li', function () {

console.log($(this).text());
});


$('ul').on('click','li', function () {

console.log($(this).text());
});

也可以用bind:
$('ul li').bind('click', function () {

console.log($(this).text());
});


$('ul li').bind('click', function () {

console.log($(this).text());
});

有什么区别呢?有什么区别呢?第一用on绑定实际上是委托给了父级ul,也就是只给 一个元素绑定了事件第二个是用选择器选择了ul下的所有li元素 依次绑定了事件假如有很多很多子元素区别就很大了, bind会严重影响性能!假如这时候新添一个li:假如这时候新添一个li:
$('ul').append('
  • 第四个子元素
  • ');


    $('ul').append('
  • 第四个子元素
  • ');



    如果是on绑定则这个li也会有点击事件

    如果是bind则没有
    如果是on绑定则这个li也会有点击事件如果是bind则没有感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools./code/HtmlJsRun测试上述代码运行效果。在线HTML/CSS/JavaScript代码运行工具在线HTML/CSS/JavaScript代码运行工具http://tools./code/HtmlJsRun关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery页面元素操作技巧汇总》、《jQuery常见事件用法与技巧总结》、《jQuery常用插件及用法总结》、《jQuery扩展技巧总结》及《jquery选择器用法总结》jQuery页面元素操作技巧汇总jQuery常见事件用法与技巧总结jQuery常用插件及用法总结jQuery扩展技巧总结jquery选择器用法总结希望本文所述对大家jQuery程序设计有所帮助。