我之前使用click()比较多,又来因为网页内容需要前端生成用了live().有的时候使用click()和bind()分不清楚该怎么试用.查了很多资料.测试了很多次,自己明白了.

总结如下:代码注释很详细,感觉不用在分段写了.都写在一起了.

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="#">点击</a>
<div class="box" style="cursor:pointer;">live</div>
<div id="test"><a href="#">live支持链式编程吗?</a></div>
<script type="text/javascript" src="js/jquery-1-8-3.js"></script>
<script type="text/javascript">
$(function(){
$("<div class='box2' style='cursor:pointer;'>live</div>").appendTo("body");
});
$("a").click(function(){
console.log("click");
});
/***
*click()方法是bind()方法的一种简单方法.
* 在bind()中, jQuery所有JavaScript事件对象, 比如focus, mouseover, resize, mousemove和mouseout,都可以作为type参数传递进来的.
*/
var message = "left";
$("a").bind("click",{ msg: message }, function(e) {
console.log(e.data.msg);
return false;
});
var message = "right";
$("a").bind("contextmenu",{ msg: message }, function(e) { //contextmenu:鼠标右击与键盘的菜单触发键
console.log(e.data.msg);
return false;
});
/***
* 这样当我们左键单击<a>时,输出"left";当右键单击<a>时,输出"right".
*/ /***
* live()给所有匹配的元素附加一个时间处理函数, 即使这个元素是以后添加进来的也有效.
*/
$("div.box").bind("click", function() {
console.log("success bind");
}); /***
* 当点击class="box"为live时, 打印出success.
* 此时,如果有新元素添加进来,该如何操作?
* 这时, 当使用上边方法点击class为live的a标签时, 不会执行.
* 原因:这个元素是在调用bind()之后添加的, 而使用live方法使得在后边添加的元素也能够执行相应的事件.
*/
$("div.box2").live("click", function() {
console.log("success live");
});
/***
* live()方法不支持链式编程
*/
$("#test").children("a").live("mouseover", function() {
console.log("支持链式编程");//报错,不支持链式编程 Error: Syntax error, unrecognized expression: #test.children(a)
}); /***
* 上面这种写法并不会输出, 我们这个时候可以使用delegate()
*/
$("#test").delegate("a", "mouseover", function() {
console.log("delegate");
});
/***
* 这样就可以输出想要的结果.
*/
</script>
</body>
</html>

最新文章

  1. H2的MVStore
  2. 【自动化测试】Selenium excel操作
  3. Properties操作
  4. 【C#通用类】日志记录类
  5. oracle 10g函数大全--分析函数
  6. vue项目的骨架及常用组件介绍
  7. Effective Java 第三版——27. 消除非检查警告
  8. 在windows8.1下安装ubuntu16.04
  9. Python sqlite3操作笔记
  10. js中var a=new Object()和var a={}有什么区别吗?
  11. python学习之路02
  12. 如何通过python代码解压zip包
  13. linux 自启动 ,让生活更美好!!
  14. Linux环境进程间通信(一)
  15. ajax简单做html查询删除(鲜花)
  16. linux之挂载硬盘
  17. 从零开始学习MXnet(五)MXnet的黑科技之显存节省大法
  18. webpack vue-cli 一有空格和分号就报错
  19. 剑指offer 和为s的两个数字的调试
  20. 定位之float 同一父元素的float相互影响,float是margin盒子在父元素的padding盒子内

热门文章

  1. 【SQLSERVER】递归查询算法实例
  2. 【转载】3D/2D中的D3DXMatrixPerspectiveFovLH和D3DXMatrixOrthoLH投影函数详解
  3. Mysql优化分页
  4. 自己通过Cygwin编译的windowsx86下的更新至4.0.1
  5. hadoop常见错误解决方法
  6. 技本功丨利用 Atomic 构建 React 项目工作流,so easy!
  7. 239. [LeetCode ]Sliding Window Maximum
  8. 简单主机批量管理工具(这里实现了paramiko 用su切换到root用户)
  9. xpath抓取的值有\r\n\t时,去掉的方法
  10. php作用域限定符