对事件委托绑定click的事件的解绑

大家都知道解绑事件的jquery写法,很简单:

$("xxx").unbind("click");

然后对于事件委托式的事件绑定,亲测,这种解绑方法是无效的,

$(".sideNav>ul").on("click", function (e) {
    alert("aaa"+$(e.tagert).index());
}

即使做判断让一部分带有某个class的li标签的ul解绑click,依然无效,事件委托会直接跳过判断,执行冒泡

解决办法:

给不想绑定点击事件的li元素阻止冒泡:

$(".sideNav>ul>li.c-808").click(function(e){
            e.stopPropagation();
});

问题解决……

时间: 2024-08-26 11:17:53

对事件委托绑定click的事件的解绑的相关文章

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

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

正常事件绑定与事件委托绑定

看下面的 案例,非原创, <!doctype html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"/> <script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js" type="te

如何判断某个事件已经绑定了某个事件处理程序?

btn.Click += new EventHandler(button2_Click); //获取Button类定义的所有事件的信息PropertyInfo pi = (typeof(Button)).GetProperty("Events", BindingFlags.Instance |BindingFlags.NonPublic); //获取Button对象btn的事件处理程序列表EventHandlerList ehl = (EventHandlerList)pi.GetVa

JQuery的事件委托;jQuery注册事件;jQuery事件解绑

一.事件 ①事件委托:就是给子元素的父元素或者祖先元素注册一个事件,但是事件的执行者是子元素,委托事件的好处是能够给动态创建出来时元素也加上事件. ②简单事件:就是给自己注册事件自己执行动态创建出来的事件不会有事件. ③使用方法:$("span").on("click",function(){alert("这是一个简单事件");}): $("div").on("click", "span"

移动端touch事件影响界面click/超链接事件无法点击

触摸事件: 三种在规范中列出并获得跨移动设备广泛实现的基本触摸事件: 1.touchstart:手指放在一个DOM元素上. 2.touchmove:手指拖曳一个DOM元素. 3.touchend:手指从一个DOM元素上移开. 每个触摸事件都包括了三个触摸列表: 1.touches:当前位于屏幕上的所有手指的一个列表. 2.targetTouches:位于当前DOM元素上的手指的一个列表. 3.changedTouches:涉及当前事件的手指的一个列表. 例如,在一个touchend事件中,这就会

先看看解析,事件委托:也称事件代理 就是利用冒泡的原理 把加事件加到父级上,触发执行效果

window.onload = function(){ var oUl = document.getElementById('ull'); var aLi = document.getElementsByTagName('li'); oUl.onmouseover = function(ev){ var event = ev||window.event; // 获取event对象 var target = ev.target || ev.srcElement; // 获取触发事件的目标对象 if

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

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

事件监听 事件委托 事件绑定

1.事件冒泡 在类似 body > div > a 这样的结构中,如果单击a元素,click事件会从a一直冒泡到div和body(即document对象).因此,发生在a上面的单击事件,div和body元素同样可以处理 2.事件委托 利用事件传播(这里是冒泡)这个机制,就可以实现事件委托.具体来说,事件委托就是事件目标自身不处理事件,而是把处理任务委托给其父元素或者祖先元素,甚至根元素(document) (1)jQuery的 bind() 方法,使用.bind()方法只会给第一页中的50个单

事件委托详解

基本概念 事件委托,通俗地来讲,就是把一个元素响应事件(click.keydown......)的函数委托到另一个元素: 一般来讲,会把一个或者一组元素的事件委托到它的父层或者更外层元素上,真正绑定事件的是外层元素,当事件响应到需要绑定的元素上时,会通过事件冒泡机制从而触发它的外层元素的绑定事件上,然后在外层元素上去执行函数. 举个例子,比如一个宿舍的同学同时快递到了,一种方法就是他们都傻傻地一个个去领取,还有一种方法就是把这件事情委托给宿舍长,让一个人出去拿好所有快递,然后再根据收件人一一分发