美文网首页
jQuery 回调函数和方法链接使用

jQuery 回调函数和方法链接使用

作者: 前白 | 来源:发表于2021-10-01 22:20 被阅读0次

    在前面的章节中,我们也学习了一些 jQuery 的方法,大家有没有发现,这些方法大多都有一个共同点,就是有一个可选的 callback 参数,这个 callback 其实就是一个回调函数,回调函数作为参数传到另一个函数里面,一旦事件发生或者某一个任务完成时被执行,经常在异步代码中使用。

    回调函数的使用

    我们通过一个函数来举例,看一下当任务执行完成时,是如何执行回调函数的。

    示例:

    例如在执行 animate 函数时添加一个回调函数作为参数,在动画执行完毕后调用回调函数,弹出弹出层:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>jQuery_侠课岛(9xkd.com)</title>
    <script src="jquery-3.5.1.min.js"></script>
    <script>
      $(function(){
        $("button").click(function(){
          $(".rect").animate({width: '300px'}, 1500,function(){ alert("回调函数") });
          
        });
      });
    </script>
    </head>
    <body>
      <div class="box">
        <div class="rect" style="background: red;width: 100px;height: 100px;"></div>
      </div>
      <p><button>点击执行动画</button></p>
    </body>
    </html>
    

    在浏览器中演示效果:

    再看一下如果不带 callback 回调函数,会有什么样的执行效果呢,如下为去掉回调函数的代码:

    $(function(){
        $("button").click(function(){
          $(".rect").animate({width: '300px'}, 1500);
          alert("回调函数");
        });
    });
    

    在浏览器中的演示效果:

    方法链接使用

    jQuery 中允许我们将方法链接使用,也就是说可以在一条语句中使用多个 jQuery 方法,通过点号 . 链接。

    示例:

    我们来看一个例子:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>jQuery_侠课岛(9xkd.com)</title>
    <script src="jquery-3.5.1.min.js"></script>
    <script>
      $(function(){
        $("button").click(function(){
          $(".rect").css("background", "tomato").slideUp(1500).slideDown(1500);
        });
      });
    </script>
    </head>
    <body>
      <p><button>点击按钮</button></p>
      <div class="rect" style="background: red;width: 100px;height: 100px;"></div>
    </body>
    </html>
    

    演示效果:


    上述示例中,我们将 css()slideUp()slideDown() 等方法链接在一起使用,所以 .rect 元素首先会编程橙色,然后向上滑动隐藏元素,最后向下滑动展开元素。

    要注意的是,当我们使用链接时,代码行会变得很差,但是 jQuery 在语法上不是很严格,所以如果想要使用也是可以的。

    相关文章

      网友评论

          本文标题:jQuery 回调函数和方法链接使用

          本文链接:https://www.haomeiwen.com/subject/bmxpnltx.html