资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

jquery的on事件和,jq on事件

jquery中on()方法和live()方法的区别

一、作用不同

渝中网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站等网站项目制作,到程序开发,运营维护。创新互联从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

1、on():在被选元素及子元素上添加一个或多个事件处理程序。

2、live():为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。

二、触发条件不同

1、on():使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。

2、live():通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。

三、语法不同

1、on():$(selector).on(event,childSelector,data,function)childSelector可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。

2、live():$(selector).live(event,data,function),其中event必需。规定附加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。

参考资料来源:百度百科-jQuery

jQuery中的on和click的区别

click是点击事件,但是在页面加载完之后,jquery事件新添加的元素,用click的话是无法获取元素的,这个时候要用on去获取元素事件,简单的说页面加载完成时候页面显示的元素可以用on,也可以用click,但是页面加载完成之后后期再追加的元素只能用on。

jQuery的on()事件问题

当你在给一个元素绑定事件时,这个元素必须存在,否则就绑定失败。很明显,$(".sb1 p")在事前是不存在的(是通过点击按钮才添加进去的),所以事件无法绑定,点击也就无效了。解决办法一是动态绑定事件,就是在点击按钮添加p的时候一并把事件绑定进去;方法二就是采用事件委托,把p的事件冒泡给父元素.sb1,即 $(".sb1").on("click","p",function(){...,这样的话即使sb1中是空的也不妨碍事件绑定了(新添加的p也会自动触发click事件)。根据你这代码的情况,建议使用方法二。

jQuery绑定事件on

jQuery中用on来绑定事件,常用写法

两种写法哪个更好?

1. $(document).on 将事件委托document, $('#idname').on 将事件绑定到.className元素上。每次document有点击动作,浏览器都会判断当前点击的对象。如果匹配再决定要不要执行,多了个判断环节。JS渲染效率很高,所以此异同基本可以忽略。

2. $("className").on 为onclick绑定,只有在页面onload时执行一次。页面刷新后,新加载的具有className的元素便没有事件绑定到上面了。相反$(document).on这种方法会刷新和重新赋予绑定操作,所以一定程度上更为全面。

jquery on 的用法

.on()方法事件处理程序到当前选定的jQuery对象中的元素。

.on( events [, selector ] [, data ], handler(eventObject) )

events:类型: String

一个或多个空格分隔的事件类型和可选的命名空间,或仅仅是命名空间,比如"click", "keydown.myPlugin", 或者 ".myPlugin"。

selector:类型: String

一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素。如果选择器是 null 或者忽略了该选择器,那么被选中的元素总是能触发事件。

data:类型: Anything

当一个事件被触发时,要传递给事件处理函数的event.data。

handler(eventObject):类型: Function()

事件被触发时,执行的函数。若该函数只是要执行return false的话,那么该参数位置可以直接简写成 false。


标题名称:jquery的on事件和,jq on事件
本文地址:http://cdkjz.cn/article/dsdoeip.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220