事件委托小demo(jq版)

<style type="text/css">
        * {
            margin: 0;
            padding: 0;
        }

        .box1 {
            width: 200px;
            height: 60px;
            background: #00A3AF;
        }

        .box2 {
            width: 200px;
            height: 200px;
            background: #ee6600;
            display: none;
        }
        body{height: 100%;}
    </style>
<div class="box">
    <a class="box1">啦啦啦</a>
    <div class="box2">我是展开的部分~~</div>
</div>
<script type="text/javascript" src="jquery-1.11.2.min.js"></script>
<script type="text/javascript">
    var $box1 = $(‘.box1‘);
    var $box2 = $(‘.box2‘);
    $(‘body‘).on(‘touchstart‘, function (e) {
        if (judgeCondition(e)) {
            // 如果点击的是按钮,或者展开的那个盒子,显示
            $box2.show();
        } else {
            // 否则隐藏
            $box2.hide();
        }
    })
    function judgeCondition(e) {
        var $target = $(e.target);
        // 点击的是按钮
        if ($target.hasClass(‘box1‘)) {
            return true;
        }
        // 点击的是展开的那个盒子
        if ($target.closest(‘.box2‘).length) {
            return true;
        }
        return false;
    }
</script>

事件绑在body上
只有点击的按钮和展开区域本身不隐藏,否则都隐藏。

时间: 2024-08-14 05:44:01

事件委托小demo(jq版)的相关文章

事件委托小demo(原生版)

<style type="text/css"> body, div, span { margin: 0; padding: 0; font-family: "\5FAE\8F6F\96C5\9ED1", Helvetica, sans-serif; font-size: 14px; } html, body { width: 100%; height: 100%; overflow: hidden; } #box { position: absolute

关于js中的事件委托小案例

需求:页面上有一个按钮,和一个空的ul,要求点击按钮,会给ul中动态添加li元素,然后,点击动态添加的元素,在控制台上输出,这是第几个元素 <ul> </ul> <button>点击增加</button> var ul = document.querySelector('ul'); var btn = document.querySelector('button'); //动态添加元素 btn.addEventListener('click',functio

hadoop streaming编程小demo(python版)

都到了年根底下了,业务线黄了,成了惨兮兮的茶几.不说了. 换到了新的业务线,搞大数据质量评估.自动化质检和监控平台是用django,MR也是通过python实现的.(后来发现有odc压缩问题,python不知道怎么解决,正在改成java版本) 这里展示一个python编写MR的例子吧. 抄一句话:Hadoop Streaming是Hadoop提供的一个编程工具,它允许用户使用任何可执行文件或者脚本文件作为Mapper和Reducer. 1.首先,先介绍一下背景,我们的数据是存放在hive里的.h

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对象).因此

班主任来啦之观察者模式,事件委托等Java实现---如果你还不懂,看完此文,就一定会懂

班主任来啦! 小A对小B说:"今天真是笑死人了,我们班一位同学在仔细的时候看NBA球赛,被班主任抓了个正着.班主任脸都绿了,哈哈,真是笑死我了. 小B说:"啊,你们怎么同学怎么敢在课上看电视啊?" 小A说:"没有的,他们那帮子男生经常自习的时候看球赛的.我们班有个女生坐在前排,那些男生就给她送写小礼物啊什么的.班主任来了,那个女生就去通知敲一下桌子." 小B说:"好吧.这也行.那今天怎么会有人被抓?" 小A说:"这是因为刚好班

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

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

深入理解-事件委托

深入理解-事件委托 2016-11-20 15:02javascript.web开发综合.性能优化JS性能优化.事件冒泡.事件委托.事件委托优化.事件委托导致性能损失 65 views 很多人是在使用事件委托的,那对于一个使用者来说,只要能正确的使用好事件委托,完成工作,就算可以了,那么你有认真的考虑过事件委托的原理,以及你的使用场景是否适合使用事件委托呢,如果需要使用事件委托,那么你是否有正确的使用呢?这里我想简单的说一下我对事件委托的理解,希望可以有机会多多交流. 概述 事件委托有哪些好处,

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

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