zoukankan      html  css  js  c++  java
  • jquery-事件

     一:jquery事件绑定有4种 方法

    方法1:直接绑定事件,如

                    $('.c1').click()
                        $('.c1').....

    方法2:通过bind方法

      bind(“事件名”,“方法”) 绑定事件

      unbind(“事件名”,“方法”) 去除绑定事件

                        $('.c1').bind('click',function(){
                            
                        })
                        
                        $('.c1').unbind('click',function(){
                            
                        })

    方法3:通过on方法

      on(“事件名”,“方法”) 绑定事件

      off(“事件名”,“方法”) 去除绑定事件

    $('.c1').on('click', function(){
    
    })
    $('.c1').off('click', function(){
    
    })

    方法4:delegate方法

      delegate("标签",“事件名”,“方法”) 绑定事件

      undelegate(“标签”,“事件名”,“方法”) 去除绑定事件

                        $('.c').delegate('a', 'click', function(){
                        
                        })
                        $('.c').undelegate('a', 'click', function(){
                        
                        })

    上面3种方法都差不多,但是对于增加内容,比如表格数据后面跟有操作,比如编辑等。

    原的表格在编译的时候已绑定了事件,但是新增加的表格数据,并没有绑定事件,用上面的方法都不行,

    可以使用delegate,指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数

    ,使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <input id="t1" type="text" />
        <input id="a1" type="button" value="添加" />
    
        <ul id="u1">
            <li>1</li>
            <li>2</li>
        </ul>
    <script src="jquery-1.12.4.js"></script>
        <script>
            $('#a1').click(function () {
                var v = $('#t1').val();
                var temp = "<li>" + v + "</li>";
                $('#u1').append(temp);
            });
    
    //        $('ul li').click(function () {
    //            var v = $(this).text();
    //            alert(v);
    //        })
    
    //        $('ul li').bind('click',function () {
    //            var v = $(this).text();
    //            alert(v);
    //        })
    
    //        $('ul li').on('click', function () {
    //            var v = $(this).text();
    //            alert(v);
    //        })
    
            $('ul').delegate('li','click',function () {
                var v = $(this).text();
                alert(v);
            })
    
        </script>
    </body>
    </html>

    二:事件列表

    三:阻止默认事件发生

      1)标签a等默认有跳转事件。如果给a标签在绑定个事件,谁会先执行?

        是绑定的事件先执行,默认的后执行。

      2)如何阻止默认事件执行?

        在给绑定的事件前加return ;如果return返回的是true继续执行默认事件,如果是false则不执行。如下例子

      

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <a onclick="return ClickOn()"  href="http://www.oldboyedu.com">走你1</a>
    
        <a id="i1" href="http://www.oldboyedu.com">走你2</a>
        <script src="jquery-1.12.4.js"></script>
        <script>
            function ClickOn() {
                alert(123);
                return true;
            }
            $('#i1').click(function () {
                alert(456);
                return false;
            })
        </script>
    </body>
    </html>
  • 相关阅读:
    Github markdown页面内跳转
    github gist 无法访问
    Install pyaudio on Ubuntu
    删除链表的倒数第N个节点
    电话号码的字母组合
    最长公共前缀
    盛最多水的容器
    字符串转化整数与回文数
    Z 字形变换
    LeetCode1-5题
  • 原文地址:https://www.cnblogs.com/lixiang1013/p/7632590.html
Copyright © 2011-2022 走看看