对未来的元素绑定事件不能用bind,

1、可以用live代替,但是要注意jquery的版本,根据官方文档,从1.7开始就不推荐live和delegate了,1.9里就去掉live了。

2、推荐用on代替(注:1.7及以上的版本才支持)。用法:on(events,[selector],[data],fn)

代码如下:

//放在$(function(){})里才有效
$(document).on("click", "#testDiv", function(){
//此处的$(this)指$( "#testDiv"),而非$(document)
});

3、 当只想为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数时,用.one()代替on就可以了,注意不是在所有的[selector]上都可以执行一次,而是在这些[select]上总共也就执行一次,对未来的元素也有效。

4、如果某个div里有增删改三个按钮需要绑定事件,像下面这些写:

代码如下:

$('#btn-add').click(function(){});
$('#btn-del').click(function(){});
$('#btn-edit').click(function(){});

这样写的坏处:看不出三者的结构联系,没有理由事件冒泡。

看看CoffeeDeveloper的对jQuery的事件绑定的一些思考 推荐的方法吧,可以写成这样:

代码如下:

$("#btnContainer").coffee({
click: {
"#btn-add": function(){ //do something },
"#btn-del": function(){ //do something },
"#btn-edit": function(){ //do something }
} ,
mouseenter:{
"#btn-abc": function(){ //do something },
}
});

这样写是不是好看多了,(.coffee()是自定义的函数,你能自己写出这个函数吗?),只是如果绑定的function比较长的话,感觉代码看起来还是有点乱,评论中的代码如下:

$('#btnContainer')
.on('click','#btn-add', function(){})
.on('click','#btn-del', function(){})
.on('click','#btn-edit',function(){});

最新文章

  1. JavaScriptPolyfillShim 在JavaScript中Shim和Polyfill有什么区别?
  2. 如何在IDEA 中使用Git
  3. SQL2008安装提示"Microsoft visual studio 2008早期之前的版本
  4. AC日记——元素查找 codevs 1230
  5. windows 2003 企业版 下载地址+序列号
  6. ModelAndView学习整理
  7. SuperSlidev2.1 轮播图片和无缝滚动
  8. SharePoint迁移数据到生产环境
  9. android 4.2 root
  10. 正确地缩写 document.querySelector
  11. c#发送短息验证码
  12. micropython驱动sh1106点亮oled
  13. 《Linux内核设计与实现》读书笔记——第一、 二章
  14. h2database轻量级数据库
  15. 20145322何志威 Exp8 Web基础
  16. ASP.NET 网页动态添加客户端脚本
  17. ionic ios 打包 真机测试常见问题
  18. ADB抓取日志和日志过滤
  19. web入门脑图
  20. Hybrid APP混合开发

热门文章

  1. MT【226】费马点两题
  2. 使用metasploit中Evasion模块
  3. Android:更好的自定义字体方案
  4. java后端面试
  5. 面向对象——类的内置attr(三十三)
  6. html中空格字符实体整理
  7. 一个程序如何在调试时退出调试或退出while循环
  8. springMVC 接收json字符串参数
  9. MySQL索引原理及慢查询优化-来自美团网的技术blog(写的深入浅出)
  10. H5新特性之geolocation