<ul id = "lists">
<li>列表1</li>
<li>列表2</li>
<li>列表3</li>
<li>列表4</li>
<li>列表5</li>
<li>列表6</li>
</ul>

  js委托:

var lists = document.getElementById("lists");

        lists.addEventListener("click",function(event){

            var target = event.target;
//防止父元素ul也触发事件
if(target.nodeName == "LI"){
target.style.backgroundColor = "red";
}
})

  jq委托:

$(function(){
$("#lists").on("click","li",function(event){
var target = $(event.target);
target.css("background-color","red");
})
})

  

$(function(){
$("#lists").delegate("li","click",function(event){
var target = $(event.target);
target.css("background-color","red");
})
})

  

$(function(){
$("#lists").bind("click","li",function(event){
var target = $(event.target);
if(target.prop("nodeName")=="LI"){
target.css("background-color","red");}
})
})

  

bind()方法同原生的JavaScript实现方法一样,当父元素代子元素执行事件时,父元素也会触发事件,所以我们需要判断一下触发事件的元素名。此外,用bind()方法给元素绑定事件的时候要注意,它只能给已经存在DOM元素添加事件,不能给未来存在DOM

元素添加添加事件。如果要频繁地添加DOM元素,并且给新添加的DOM元素绑定事件的话,用live(),delegate(),on()等方法。鉴于jQuery从1.7之后就不推荐live()和delegate()方法了,所以还是使用on()方法。

最新文章

  1. vue 列表渲染
  2. SQL入门经典(五) 之键和约束
  3. Linux内核参数配置
  4. Access项目文件的版本控制
  5. 如何获取WIN10 Program Files 文件夹下的文件操作权限
  6. C头文件之&lt;cstring&gt;
  7. 使用 Google Fonts 为网页添加美观字体
  8. SQL 去除重复、获取最新记录
  9. MongoDB insert/update/one2many案例
  10. zabbix 添加主机接口
  11. Mac os 进行Android开发笔记(2)
  12. Hashtable、synchronizedMap、ConcurrentHashMap 比较
  13. 使用Supervisor守护Python进程
  14. TSP-旅行商问题
  15. [SHOI2008]汉诺塔
  16. vs 2015安装包
  17. JavaScript递归中的作用域问题
  18. WebViewJavascriptBridge的使用说明
  19. Git-简单的利用SourceTree提交代码(转载)
  20. Oracle 存储过程错误之PLS-00201: 必须声明标识符

热门文章

  1. java_多态
  2. ssm学习(四)--完整的增删改查demo
  3. html5笔记——&lt;section&gt; 标签
  4. div元素宽度不定的情况下如何居中显示
  5. 登录验证码demo-java
  6. 《程序设计方法》【PDF】下载
  7. DotNetCore跨平台~System.DrawingCore部署Linux需要注意的
  8. 【python】自定义函数def funName():
  9. 【java】正则表达式简单示例
  10. Sublime Text编辑器 + vim插件