jq实现事件委托

事件委托

ul,li{
padding:0;margin:0;list-style: none!important;
}
menu>ul>li{
float: left;
width: 120px;
height:30px;
line-height: 30px;
text-align:center;
background: #46b8da;
margin:1px;
cursor: pointer;color:#fff;
}
menu>ul li a{
color:#fff;
text-decoration: none!important;;
}
menu>ul li:hover,menu>ul li.active{
background: #0697DA;
}
menu>ul>li:not(:last-child){
border-right:1px solid silver;
}

时间: 2025-01-05 02:32:13

jq实现事件委托的相关文章

JQ 为未来元素添加事件处理器—事件委托

随着DOM结构的复杂化和Ajax等动态脚本技术的运用,有了较多的动态添加进来的元素,直接用JQ添加click事件会发现新添加进来的元素并不能直接选取到,在这里就需要用到事件委托方法,JQ为事件委托提供了live().dalegate()和on()方法. 事件委托 我们知道,DOM在为页面中的每个元素分派事件时,相应的元素一般都在事件冒泡阶段处理事件.在类似 body > div > a 这样的结构中,如果单击a元素,click事件会从a一直冒泡到div和body(即document对象).因此

jQuery事件委托

随着DOM结构的复杂化和Ajax等动态脚本技术的运用,有了较多的动态添加进来的元素,直接用JQ添加click事件会发现新添加进来的元素并不能直接选取到,在这里就需要用到事件委托方法,JQ为事件委托提供了live().dalegate()和on()方法. 事件委托 我们知道,DOM在为页面中的每个元素分派事件时,相应的元素一般都在事件冒泡阶段处理事件.在类似 body > div > a 这样的结构中,如果单击a元素,click事件会从a一直冒泡到div和body(即document对象).因此

jquery live() delegate() on() 事件委托的一些区别

随着DOM结构的复杂化和Ajax等动态脚本技术的运用,有了较多的动态添加进来的元素,直接用JQ添加click事件会发现新添加进来的元素并不能直接选取到,在这里就需要用到事件委托方法,JQ为事件委托提供了live().dalegate()和on()方法. 事件委托 我们知道,DOM在为页面中的每个元素分派事件时,相应的元素一般都在事件冒泡阶段处理事件.在类似 body > div > a 这样的结构中,如果单击a元素,click事件会从a一直冒泡到div和body(即document对象).因此

事件委托和JQ事件绑定总结

事件委托: 比喻:事件委托的事例在现实当中比比皆是.比如,有三个同事预计会在周一收到快递.为签收快递,有两种办法:一是三个人在公司门口等快递:二是委托给前台MM代为签收.现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递).前台MM收到快递后,她会判断收件人是谁,然后按照收件人的要求签收,甚至代为付款.这种方案还有一个优势,那就是即使公司里来了新员工(不管多少),前台MM也会在收到寄给新员工的快递后核实并代为签收. 实现原理:我们知道,DOM在为页面中的每个元素分派事

JQ事件委托导致点击事件多次执行问题

起因:最近写网页其中一个模块使用tab切换~每一个tab里都有点击按钮提交事件,刚开始点击提交只执行一次,但是只要我tab切换页面又切换回来该页面,再点击该按钮,我切换了多少次页面,代码提交也会提交很多次: 原因:后来找了一下原因,得知是因为JQ事件委托导致点击事件多次执行的(事件委托是指:利用事件冒泡,指定一个事件处理程序来管理某一类型的所有事件),虽然我页面切换了,但是事件问题还在,所以才会点击一次执行多次: 解决方法:使用off()函数移除之前添加的事件处理程序,就能解决该问题. eg:

直接事件与事件委托

最近学了JQ 刚刚在网上看了点关于直接事件与事件委托的知识: 比如:这样两段代码: $('ul li').on('click', function () { //todo }); $('ul').on('click','li', function () { //todo }) 他们的区别是什么呢?在JQuery的官网上有详细的解释,第一段是说把事件直接绑定在li上,如果有100个li,就相当于绑定了100次的li,而且只能绑定在文档中已存在的li上, 后续添加的li是绑定不上的,比如通过ajax

前端-【学习心得】-事件委托方法

上篇分享提出的这个事件委托,今天让我来详细说明下把. 先看一段例子: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Examples</title> <meta

事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流

一.事件冒泡定义 事件冒泡是指在一个对象触发某类事件(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,甚至它被处理(父级对象所有同类事件都将被激活),或者它到达了对象层级的最顶层,即document对象(有些浏览器是window).. 二.事件冒泡的作用 事件冒泡允许多个操作被集中处理(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子级元

javascript 事件委托 event delegation

事件委托 event delegation 一.概念: 假设我们有很多个子元素,每个元素被点击时都会触发相应事件,普通的做法是给每个子元素添加一个事件监听. 而,事件委托则是给它们的父元素添加一个事件监听器,子元素上没有任何事件监听.当子元素被点击时,这个点击事件冒泡到父元素上,然后父元素上绑定的事件监听来分析和处理这是哪个子元素被点击了. 二.例子1:一个ul及几个li: <ul id="parent-list" style="border:1px solid bla