符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
jquery.on()超级方法
成都创新互联是一家专业提供澄海企业网站建设,专注与成都网站设计、成都网站建设、H5响应式网站、小程序制作等业务。10年已为澄海众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
归纳
在jquery的on方法中实现事件委托就更简单了,on方法可以接受三个参数:
第一个参数是事件名,可以只绑定一个事件,如on('click'),也可以绑定多个事件,如on('click dbclick mouseover')等
第二个参数是可选参数,接受一个selector,当事件触发元素符合selector时,会调用事件处理函数
注:此处用到 li:even 选择器,后面有注解
第三个参数是自定义事件处理的回调函数。
1.jQuery :even 选择器
选取每个带有偶数 index 值的元素(比如 2、4、6)
index 值从 0 开始,所有第一个元素是偶数 (0)
2.jQuery :odd 选择器
选取每个带有奇数 index 值的元素(比如 1、3、5)
有on 方法的 你可以先试下 用下click 方法 如果 click 也不行 估计是 jquery 循序 搞错 或者是没有 读取到 jquery 文件
你这个没问题啊,我执行过的,除了你打开和关闭没有包引号,其他都没问题
events:一个或多个用空格分隔的事件类型和可选的命名空间,如"click"或"keydown.myPlugin" 。
selector:一个选择器字符串用于过滤器的触发事件的选择器元素的后代。如果选择器为null或省略,当它到达选定的元素,事件总是触发。
data:当一个事件被触发时要传递event.data给事件处理函数。
fn:该事件被触发时执行的函数。 false 值也可以做一个函数的简写,返回false。
当第二个参数'selector'为null时,on()和bind()其实在用法上基本上没有任何区别了,所以我们可以认为on()只是比bind()多了一个可选的'selector'参数,所以on()可以非常方便的替换掉bind()
在 1.4之前相信大家非常喜欢使用live(),因为它可以把事件绑定到当前以及以后添加的元素上面,当然在1.4之后delegate()也可以做类似的事情了。live()的原理很简单,它是通过document进行事件委派的,因此我们也可以使用on()通过将事件绑定到document来达到 live()一样的效果。
1、live()写法
2、on()写法
这里的关键就是第二个参数'selector'在起作用了。它是一个过滤器的作用,只有被选中元素的后代元素才会触发事件。
delegate() 是1.4引入的,目的是通过祖先元素来代理委派后代元素的事件绑定问题,某种程度上和live()优点相似。只不过live()是通过document元素委派,而delegate则可以是任意的祖先节点。使用on()实现代理的写法和delegate()基本一致。
1、delegate()的写法
2、on()写法
貌似第一个和第二个参数的顺序颠倒了一下,别的基本一样。
当你在给一个元素绑定事件时,这个元素必须存在,否则就绑定失败。很明显,$(".sb1 p")在事前是不存在的(是通过点击按钮才添加进去的),所以事件无法绑定,点击也就无效了。解决办法一是动态绑定事件,就是在点击按钮添加p的时候一并把事件绑定进去;方法二就是采用事件委托,把p的事件冒泡给父元素.sb1,即 $(".sb1").on("click","p",function(){...,这样的话即使sb1中是空的也不妨碍事件绑定了(新添加的p也会自动触发click事件)。根据你这代码的情况,建议使用方法二。