猿问

在JQuery中回调函数没加小括号,为什么???

我在执行animate动画完毕后调用回调函数,要直接写函数名“aniDiv”就能调用这个函数,而不是写成“aniDiv()”来调用为什么?如果我不写在回调函数中而是另起一行去调用函数就必须写括号,为什么了???

<html>

<head>

<script type="text/javascript" src="/jquery/jquery.js"></script>

<script type="text/javascript"> 

$(document).ready(function(){

  function aniDiv(){

    $("#box").animate({width:300},"slow");

    $("#box").animate({width:100},"slow",aniDiv);      //该处调用aniDiv函数,没写小括号,为什么?

  }

  aniDiv();

  $(".btn1").click(function(){

    $(":animated").css("background-color","blue");

  });

});

</script>

<style> 

div

{

background:#98bf21;

height:40px;

width:100px;

position:relative;

margin-bottom:5px;

}

</style>

</head>

<body>

<div></div>

<div id="box"></div>

<div></div>

<button class="btn1">Mark animated element</button>

</body>

</html>


快乐崇拜tager
浏览 2910回答 3
3回答

Suber丶林

还原animate的写法:// 其中一个参数为function声明,而不是执行一个function animate({width: 2}, 'slow', function() {}); // 所以你可以写成 animate({width: 2}, 'slow', function() {aniDiv()}); // 很显然,你已经将要执行的代码封装成一个function,而且不带参数,所以可以使用以下写法 animate({width: 2}, 'slow', aniDiv);

老猿

加括号就是执行

qyy2499760117_叶子

  $("#box").animate({width:100},"slow",aniDiv);      //该处调用aniDiv函数,没写小括号,为什么?这句是在  function aniDiv()这个函数里,
随时随地看视频慕课网APP
我要回答