jQuery事件绑定与常用事件

jQuery事件与js类似,只是在名称上将前面的on去掉了,例如jQuery的click、mousedown、keypress事件。jQuery绑定事件有2种方法,下面用最基本的例子做演示。

①直接绑定,$('selector').event(function () { 代码块;})

<button>click me</button>
<script src="baidu_jquery_2.1.4.js"></script>
<script>
    $('button').click(function () {
        alert('hello world');
    })
</script>

 

②通过bind绑定,$('selector').bind('event',function () { 代码块;})

通过这种方法可以解绑事件,$('selector').unbind('event')

<button>click me</button>
<script src="baidu_jquery_2.1.4.js"></script>
<script>
    $('button').bind('click',function () {
         alert('hello world');
    })
    $('button').unbind('click' )  
</script>

 

为了避免在文档未完全加载之前就运行jQuery代码导致错误,或者动态增加的标签不会自动绑定事件,可通过两种方法解决。

1.保证文档在完全加载之后再运行jQuery代码

$(document).ready(function(){ 
   // 开始写 jQuery 代码... 
});

//等价于
$(function(){
   // 开始写 jQuery 代码... 
});

②事件委托与绑定

<ul>
    <li>11</li>  <li>22</li>  <li>33</li>  <li>44</li>
</ul>
<button>add li</button>  <!--按钮,点击增加li标签-->
<script src="baidu_jquery_2.1.4.js"></script>
<script>
    $('button').click(function () {
        var $ele=$('<li>')
        $ele.html(($('li').length+1)*11);  //新增li标签的文本内容
        $('ul').append($ele)
    })
    $('li').bind('click',function () {   //点击li标签,弹出提示框
         alert('hello world');
    })
</script>

对于上面这个例子,原本文档中的11、22、33和44标签,点击分别可弹出提示框,单只对于点击按钮后新增的55、66、77等标签,则不会自动绑定上原li标签的click事件,即点击不会弹出hello world提示框。为此,可将事件绑定在ul标签、并委托给ul标签的li标签。

//将原本li标签的click事件修改为如下
$('ul').bind('click','li',function () {
         alert('hello world');
})

 jQuery常见事件

①显示与隐藏:show()、hide()与toggle()

三个函数不加参数分别表示直接显示、隐藏与切换;加上时间参数如hide(1000),表示隐藏这个动作持续1000ms;也可使用'slow'或者'fast'作为参数。

<div style="width: 200px;background: pink">hello world</div><br>
<button id="showing">显示</button>
<button id="hiding">隐藏</button>
<button id="toggling">切换</button>
<script>
   $('#showing').click(function () {
       $('div').show();
   })
   $('#hiding').click(function () {
       $('div').hide();
   })
   $('#toggling').click(function () {
       $('div').toggle();  //切换,如果div是显示则隐藏,如果是隐藏则显示
   })
</script>

②向上与向下滑动:slideUp()、slideDown()与slideToggle()

三个函数不加参数分别表示直接向上滑动、向下滑动与切换;加上时间参数如slideUp(1000),表示向上滑动这个动作持续1000ms;也可使用'slow'或者'fast'作为参数。

<div style="width: 200px;background: pink">hello world</div><br>
<button id="slideup">向上滑动</button>
<button id="slidedown">向下滑动</button>
<button id="slidetoggle">切换</button>
<script>
   $('#slideup').click(function () {
       $('div').slideUp(1000);
   })
   $('#slidedown').click(function () {
       $('div').slideDown(1000);
   })
   $('#slidetoggle').click(function () {
       $('div').slideToggle(1000);  //切换,如果当前状态为向下滑动则向上滑动,如果当前状态为向上滑动则向下滑动
   })

 ③淡入与淡出:fadeIn()、fadeOut()、fadeToggle()与fadeTo()

这四个参数实际是对标签的透明度进行设置,前三个参数的用法类似前面两个,而fadeTo()需要两个参数,第一个参数表示速度,可使用毫秒数或者'slow'和'fast',第二个参数为指定的透明度,在0和1之间。

<div style="width: 200px;background: pink">hello world</div><br>
<button id="fadein">淡入</button>
<button id="fadeout">淡出</button>
<button id="fadetoggle">切换</button>
<button id="fadeto">透明度</button>
<script>
  $('#fadein').click(function () {
       $('div').fadeIn(1000);
   })
   $('#fadeout').click(function () {
       $('div').fadeOut(1000);
   })
   $('#fadetoggle').click(function () {
       $('div').fadeToggle(1000);
   })
   $('#fadeto').click(function () {
       $('div').fadeTo(1000,0.3);
   })
</script>

 

对于上述三对方法,除了可以加上毫秒或者'slow'和'fast'作为第一个参数,还可以加上第二个参数即回调函数,表示原方法完成后执行的函数,语法

$(selector).event(speed,function() { //回调函数代码}),以下例子以第一对函数为例。点击点击隐藏按钮时,会先隐藏div标签,隐藏动作完成后会弹出“已隐藏”提示框;点击显示按钮时,会先显示div标签,显示动作完成后会弹出“已显示”提示框。

<div style="width: 200px;background: pink">hello world</div><br>
<button id="showing">显示</button>
<button id="hiding">隐藏</button>
<script src="baidu_jquery_2.1.4.js"></script>
<script>
   $('#showing').click(function () {
       $('div').show('slow',function () {
           alert('已显示');
       });
   })
   $('#hiding').click(function () {
       $('div').hide('slow',function () {
           alert('已隐藏');
       });
   })
</script>

 

posted @ 2019-02-05 20:22  Forever77  阅读(393)  评论(0编辑  收藏  举报