打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
on和bind的区别,以及js重新渲染问题

前一段时间面试的时候,面试官问了这么一个问题说:Jquery中on和bind有什么区别?当时就一脸懵逼了,因为虽然一直用$("#id").bind("click",function(){})或者$("#id").on("click",".class",function(){})。但是真的问起来,他俩有什么区别还真的不知道。

这样,我们先从写法来看,bind后边参数一般就是绑定事件加方法;on后边的参数相比bind来说,多了一个selector。这就是他们的区别。我们可以通过几个开发中很容易遇到的情况来分析:

情况一:在一个页面上,有多个块,每个块的class是不同的,但是块中的子元素的class是相同的。这个时候你要给content1下的子元素的child绑定事件,用bind肯定是不可以的,因为这样会对所有的child元素绑定事件。但是用on就可以完美解决,给特定唯一父元素下的子元素绑定事件。

<div class="content1">    <div class="child"></div></div><div class="content2">    <div class="child"></div></div><div class="content3">    <div class="child"></div></div><script>    /*$(".child").bind("click",function () {        //bind绑定事件    })*/    $(".content1").on("click",".child",function () {            //on绑定子元素事件    })</script>

情况二:对于动态加载的class进行绑定事件。页面对于js只在加载的时候渲染一次,用on就可以对新添加的进行重新渲染,给动态添加的也加上绑定事件。

<style>    .show-red{        color: red;    }    .show-yellow{        color: yellow;    }</style><div class="content1">123</div><div class="content2">456</div><script>    $(".content1").addClass("show-red");    $(".content2").addClass("show-yellow");    /*$(".show-red").bind("click",function () {        //bind给show-red绑定事件    })*/    $(".content1").on("click",".show-red",function () {        //on给show-red绑定事件    })    </script>

综上:on可以将子元素的事件委托给父元素进行处理;on可以给动态添加的元素加上绑定事件。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
bind绑定多个事件切换
jquery:属性选择器
Vue.js
CSS选择器
Vue JS 自学笔记
jquery添加光棒效果的各种方式以及简单动画复杂动画
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服