jQuery事件绑定与常用事件

妖狐艹你老母 2021-12-20 10:07 536阅读 0赞

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

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

  1. <button>click me</button>
  2. <script src="baidu_jquery_2.1.4.js"></script>
  3. <script>
  4. $('button').click(function () {
  5. alert('hello world');
  6. })
  7. </script>

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

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

  1. <button>click me</button>
  2. <script src="baidu_jquery_2.1.4.js"></script>
  3. <script>
  4. $('button').bind('click',function () {
  5. alert('hello world');
  6. })
  7. $('button').unbind('click' )
  8. </script>

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

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

  1. $(document).ready(function(){
  2. // 开始写 jQuery 代码...
  3. });
  4. //等价于
  5. $(function(){
  6. // 开始写 jQuery 代码...
  7. });

②事件委托与绑定

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

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

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

jQuery常见事件

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

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

  1. <div style="width: 200px;background: pink">hello world</div><br>
  2. <button id="showing">显示</button>
  3. <button id="hiding">隐藏</button>
  4. <button id="toggling">切换</button>
  5. <script>
  6. $('#showing').click(function () {
  7. $('div').show();
  8. })
  9. $('#hiding').click(function () {
  10. $('div').hide();
  11. })
  12. $('#toggling').click(function () {
  13. $('div').toggle(); //切换,如果div是显示则隐藏,如果是隐藏则显示
  14. })
  15. </script>

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

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

  1. <div style="width: 200px;background: pink">hello world</div><br>
  2. <button id="slideup">向上滑动</button>
  3. <button id="slidedown">向下滑动</button>
  4. <button id="slidetoggle">切换</button>
  5. <script>
  6. $('#slideup').click(function () {
  7. $('div').slideUp(1000);
  8. })
  9. $('#slidedown').click(function () {
  10. $('div').slideDown(1000);
  11. })
  12. $('#slidetoggle').click(function () {
  13. $('div').slideToggle(1000); //切换,如果当前状态为向下滑动则向上滑动,如果当前状态为向上滑动则向下滑动
  14. })

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

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

  1. <div style="width: 200px;background: pink">hello world</div><br>
  2. <button id="fadein">淡入</button>
  3. <button id="fadeout">淡出</button>
  4. <button id="fadetoggle">切换</button>
  5. <button id="fadeto">透明度</button>
  6. <script>
  7.   $('#fadein').click(function () {
  8. $('div').fadeIn(1000);
  9. })
  10. $('#fadeout').click(function () {
  11. $('div').fadeOut(1000);
  12. })
  13. $('#fadetoggle').click(function () {
  14. $('div').fadeToggle(1000);
  15. })
  16. $('#fadeto').click(function () {
  17. $('div').fadeTo(1000,0.3);
  18. })
  19. </script>

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

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

  1. <div style="width: 200px;background: pink">hello world</div><br>
  2. <button id="showing">显示</button>
  3. <button id="hiding">隐藏</button>
  4. <script src="baidu_jquery_2.1.4.js"></script>
  5. <script>
  6. $('#showing').click(function () {
  7. $('div').show('slow',function () {
  8. alert('已显示');
  9. });
  10. })
  11. $('#hiding').click(function () {
  12. $('div').hide('slow',function () {
  13. alert('已隐藏');
  14. });
  15. })
  16. </script>

转载于:https://www.cnblogs.com/Forever77/p/10353055.html

发表评论

表情:
评论列表 (有 0 条评论,536人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jQuery动态事件

    jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定。在1.7版本以前使用live。但是在1.8

    相关 jQuery--解除事件

    解除事件绑定 在元素绑定事件之后,当在某个时刻不再需要该事件处理时,可以解除所绑定的事件。在jQuery中提供了unbind()和undelegate()方法,分别用于解