今天遇到一个很有意思的问题,就是做jquery click嵌套的时候,容易出现累加的情况即click事件重复执行的问题,比如:
<script type=’text/javascript’ src=’http://www.cnonepiece.com/wp-content/themes/xiu/js/jquery.js?ver=1.1′></script>
<script>
$(document).ready(function() {
$(“#btn1”).click(function(){
$(“#btn2”).click(function(){
alert(“hi”);
});
});
});
</script>
<input id=”btn1″ type=”button” value=”button1″ > <input id=”btn2″ type=”button” value=”button2″ >
点击一下 button1然后再点击一下 button2,会alert一下“hi”,如果此时再点击一下 button1、 button2,就会连续弹出两次“hi”。以此类推。这种现象就是click事件累加现象。如果我们只想每次点击一遍 button1、 button2都只弹一次“hi”,那我们只需要在每次的click时间之前解绑一次click:unbind(‘click’)。
<script>
$(document).ready(function() {
$(“#btn1”).click(function(){
$(“#btn2”).unbind(‘click’);
$(“#btn2”).click(function(){
alert(“hi”);
});
});
});
</script>
这样每次点击就会只弹一次hi。
web前端内容推荐
- 解决js浮点数计算精度的函数
- 批量匹配块注释的正则
- [nodejs实战:校花网学妹图片采集+站点发布]三、数据的筛选:cheerio模块
- 带有transform:Matrix()的元素替换
- Xamarin破解:main.axml设计器提示an existing sdk with platform-tools
- react native ios真机调试:The app ID cannot be registered to your development team
- 封装一个count方法,能实现如此调用:count(a)(b)(c)(d)(e)… 并且返回的值为参数连乘的结果,即a*b*c*d*e*
- 前端跨域的整理
0 条评论。