zoukankan      html  css  js  c++  java
  • python之JQuery(文档操作,事件委托,事件冒泡)

    1. 文档操作
            创建标签用:document.createElement("div")
            
            1. 内部添加
                1. 前面加
                    1. $(A).prepend(B)
                    2. $(A).prependTo(B)
                2. 后面加
                    1. $(A).append(B)
                    2. $(B).appendTo(A)
            2. 外部添加
                1. 前面加
                    1. $(A).before(B)
                    2. $(B).insertBefore(A)
                2. 后面加
                    1. $(A).after(B)
                    2. $(B).insertAfter(A)
            
            3. 移除和清空
                1. remove()   --> 把选中过的标签从文档树中移除
                2. empty()    --> 把选中的标签内部的元素都移除
            4. 替换
                1. $(A).replaceWith(B)
                2. $(B).replaceAll(A)
            5. clone
                注意参数true,加上true会把标签绑定的事件也复制
                
    2. 事件
            1. jQuery绑定事件的方式
                1. 给标签绑定事件的方式
                    1. 在标签上写 onclick=函数();
                    2. 在js代码中 标签对象.onclick = function(){}
                2. jQuery绑定事件
                    1. $("选择器").click(function(){...});
                3. 事件委托(如把.c1样式类的事件委托给body标签(未来的事件)(因为body一直是存在的))
                    原理:事件冒泡(即div下的span标签,如果事件寻找的是div标签,而点击span标签仍然有效的情况)
                        1.如何阻止事件冒泡(向上传递)(e为绑定事件的函数参数,下同)
                            e.stopPropagation()
                        2.阻止默认事件的发生如(submit按钮有默认的事件,下面有例子)(常用于阻止form表单的提交)
                            e.preventDefault()
                        3.阻止后续事件的执行
                            如在事件函数中添加return false;
                            
                    目的:解决未来的标签如何绑定事件!(即如果原先有对应的标签对应的样式,但是后来新添加的标签就应用不上这个样式的情况)
                    语法:
                        $("祖先标签").on("click", "选择器", function(){...})
                        
                        
                        
    #--利用委托给未来的标签绑定事件
        <!DOCTYPE html>
        <html lang="zh-CN">
        <head>
            <meta http-equiv="content-Type" charset="UTF-8">
            <meta http-equiv="x-ua-compatible" content="IE=edge">
            <title>Title</title>
        </head>
        <body>
    
        <button id="b1">添加</button>
        <table border="1">
            <thead>
            <tr>
                <th>序号</th>
                <th>姓名</th>
                <th>爱好</th>
                <th>操作</th>
            </tr>
            </thead>
            <tbody>
            <tr>
                <td>1</td>
                <td>康抻</td>
                <td>gay in gay out</td>
                <td><button class="delete">开除</button></td>
            </tr>
            <tr>
                <td>2</td>
                <td>蝇蝇</td>
                <td>用手</td>
                <td><button class="delete">开除</button></td>
            </tr>
            </tbody>
        </table>
        <script src="jquery-3.3.1.js"></script>
        <script>
            $("#b1").click(function () {
                // 在表格的最后添加一行数据
                // 1. 先有数据
                var trEle = document.createElement("tr");  // trEle是一个DOM对象
                trEle.innerHTML = `
                    <td>3</td>
                    <td>黄袍哥</td>
                    <td>吹牛逼</td>
                    <td><button class="delete">开除</button></td>
                `;
                // 2. 追加到tbody的最后
                $("tbody").append(trEle);
            });
            // 使用事件委托的方式给未来的标签绑定事件
            $("table").on("click", ".delete", function () {
                // this指的就是谁触发的事件,this是一个DOM对象,$(this)是jQuery对象
                console.log(this);
                $(this).parent().parent().remove();
            })
        </script>
        </body>
        </html>
    
    
    
    
    #--阻止事件的冒泡
        <!DOCTYPE html>
        <html lang="zh-CN">
        <head>
            <meta http-equiv="content-Type" charset="UTF-8">
            <meta http-equiv="x-ua-compatible" content="IE=edge">
            <title>Title</title>
        </head>
        <body>
    
        <div id="d1">
            <p id="p1">
                <span id="s1">span</span>
            </p>
        </div>
        <hr>
        <form action="">
            <input type="text" id="i2">
            <input type="submit" value="提交" id="i1">
        </form>
    
        <script src="jquery-3.3.1.js"></script>
        <script>
            $("#s1").click(function (event) {
                // event表示事件本身
                alert("这是span标签");
                // 阻止事件冒泡
                event.stopPropagation()
            });
            $("#p1").click(function () {
                alert("这是p标签")
            });
            $("#d1").click(function () {
                alert("这是div标签")
            });
    
            // 点击submit按钮,先校验input框的值为不为空,
            // 为空就不提交,不为空就提交
             $("#i1").click(function (event) {
                alert("这是form表单的提交按钮!");
                var value = $("#i2").val();
                if (value.length === 0){
                    // 为空就不提交
                    // 不执行后续默认的提交事件
                    // 阻止默认事件的执行
                    // event.preventDefault()
                    return false;
                }
            });
        </script>
        </body>
        </html>
  • 相关阅读:
    百度地图-放大地图
    haroxy hdr
    haproxy path_beg
    haproxy /admin跳转 不会在接口上再次加上admin
    api 跳转规则
    如何利用BI搭建电商数据分析平台
    如何利用BI搭建电商数据分析平台
    北向接口与南向接口
    perl 传递对象到模块
    mysql 监控 大批量的插入,删除,和修改
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/11587269.html
Copyright © 2011-2022 走看看