zoukankan      html  css  js  c++  java
  • jQuery学习(三)

    事件

    on方法可以将一个事件绑定在jQuery对象上,当你的操作触发了这些事件时,便会调用你所绑定的函数。

    例如,给某个超链接绑定点击事件。

     1 <head>
     2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     3 <script src="./js/jquery-1.12.0.js"></script>
     4 <script>
     5 $(document).ready(function(){
     6     var a = $('a');
     7     a.on('click', function(){
     8         alert('Hello Word');
     9     });
    10 });
    11 </script>
    12 <title>Event</title>
    13 </head>
    14 <body>
    15 <a href="#0">Click</a>
    16 </body>

    除了用on()以外,还可以直接用click来绑定点击事件。

    <script>
    $(document).ready(function(){
        var a = $('a');
        a.click(function(){
            alert('Hello');
        });
    });
    </script>

    鼠标事件

    click: 鼠标单击时触发;

    dblclick:鼠标双击时触发;

    mouseenter:鼠标进入时触发;

    mouseleave:鼠标移出时触发;

    mousemove:鼠标在DOM内部移动时触发;

    hover:鼠标进入和退出时触发两个函数,相当于mouseenter加上mouseleave。

    键盘事件

    键盘事件仅作用在当前焦点的DOM上,通常是<input><textarea>

    keydown:键盘按下时触发; keyup:键盘松开时触发; keypress:按一次键后触发。

    其他事件

    focus:当DOM获得焦点时触发;

    blur:当DOM失去焦点时触发;

    change:当<input><select><textarea>的内容改变时触发;

    submit:当<form>提交时触发;

    ready:当页面被载入并且DOM树完成初始化后触发。

    其中,ready仅作用于document对象上,在页面DOM树构建完成后触发。

    正如上述代码所示,除了能够用on绑定ready事件外,ready事件也可以像click一样被简写。甚至能被更简单的写为:

    1 <script>
    2 $(function(){
    3     var a = $('a');
    4     a.click(function(){
    5         alert('Hello');
    6     });
    7 });
    8 </script>

    而且这种写法更为常见。

    如果想获得事件的其他内容,可以在function传入变量e来获取。

    取消绑定:

    和on()相反的是,off()可以帮我们取消jQuery对象上的事件绑定,

     1 <head>
     2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     3 <script src="./js/jquery-1.12.0.js"></script>
     4 <script>
     5 $(function(){
     6     var a = $('a');
     7     a.click(function(){
     8         alert('Hello');
     9     }); 
    10     var bt = $('button');
    11     bt.click(function(){
    12         a.off('click');
    13         alert('event_off');
    14     });
    15 });
    16 </script>
    17 <title>Event</title>
    18 </head>
    19 <body>
    20 <a href="#0">Click</a>
    21 <button>event_off</button>
    22 </body>

    点击Button时取消了链接的点击事件,再点击链接不会出现提示框。

    实际上,这里我们将a链接上的点击事件绑定函数全部取消了,如果只想取消某一个函数,那么我们在绑定时,就不能够采用匿名函数。并且在取消时,将函数对象也作为参数传入。

     1 <head>
     2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     3 <script src="./js/jquery-1.12.0.js"></script>
     4 <script>
     5 $(function(){
     6     var click_f2 = function(){
     7         alert('hello 2');
     8     };
     9     var a = $('a');
    10     a.click(function(){
    11         alert('Hello');
    12     }); 
    13     a.click(click_f2);
    14     
    15     var bt = $('button');
    16     bt.click(function(){
    17         a.off('click',click_f2);
    18         alert('click_f2 off');
    19     });
    20 });
    21 </script>
    22 <title>Event</title>
    23 </head>
    24 <body>
    25 <a href="#0">Click</a>
    26 <button>event_off</button>
    27 </body>

    这段代码中,我们只取消绑定了click_f2,而Hello仍然正常提示。同时我们可以发现绑定事件响应的先后顺序是根据绑定的先后来的。

    事件通常是由用户操作触发,如果我们希望代码可以直接触发事件,则可用trigger(),这样能够避免我们写很多重复的代码。

     1 <head>
     2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     3 <script src="./js/jquery-1.12.0.js"></script>
     4 <script>
     5 $(function(){
     6     var a = $('a');
     7     a.click(function(){
     8         alert('Hello');
     9     }); 
    10     
    11     var bt = $('button');
    12     bt.click(function(){
    13         a.trigger('click');
    14     });
    15 });
    16 </script>
    17 <title>Event</title>
    18 </head>
    19 <body>
    20 <a href="#0">Click</a>
    21 <button>event_off</button>
    22 </body>

    当我们点击按钮时,我们在代码内部触发了a的点击事件,因此也能弹出Hello。

    动画:

    我们已经知道了通过show()和hide()方法,可以让一个jQuery对象消失或者隐藏。但是当我们给方法传入一个参数时,页面就能呈现渐变的效果,一般传入的参数是毫秒数,但是'slow'和'fast'也能作为参数传入。

    show()和hide()是对象由左上角逐渐收起或是展开,而slideUp()和slideDown()则是垂直方向的收起和展开。

    fadeIn()和fadeOut()表示渐入渐出的效果。

    同时,jQuery还通过animate()支持自定义动画效果。给animate传入最终的CSS样式和变化的时间,则可以在指定时间内渐变成最后的样式。同时,animate还能够传入回调函数,在动画结束后被调用。

     1 <head>
     2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     3 <title>Animate</title>
     4 <script src='./js/jquery-1.12.0.js'></script>
     5 <script>
     6 $(function(){
     7     var bt = $('button');
     8     var div = $('#test-animate');
     9     bt.click(function(){
    10         div.animate({
    11              '256px',
    12             height: '256px'
    13         },3000,function(){
    14             alert('animate done');
    15         });
    16     }); 
    17 });
    18 </script>
    19 </head>
    20 <body>
    21 <div id='test-animate'></div>
    22 <button>change CSS</button>
    23 </body>
  • 相关阅读:
    linux基本知识2
    Notification发送通知
    CSDN管理员看过来
    linux 中安装JDK
    断开网线黑客也能盗走你的数据
    1.6.2 多表插入
    【笨木头Lua专栏】基础补充07:协同程序初探
    猫猫学iOS 之微博项目实战(2)微博主框架-自己定义导航控制器NavigationController
    mysql innodb插入意向锁
    MongoDB实战指南(七):MongoDB复制集之复制集工作机制
  • 原文地址:https://www.cnblogs.com/insaneXs/p/5213529.html
Copyright © 2011-2022 走看看