亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在JQuery中回調函數沒加小括號,為什么???

在JQuery中回調函數沒加小括號,為什么???

快樂崇拜tager 2016-06-29 16:04:39
我在執行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>
查看完整描述

3 回答

已采納
?
Suber丶林

TA貢獻75條經驗 獲得超180個贊

還原animate的寫法:

//?其中一個參數為function聲明,而不是執行一個function
animate({width:?2},?'slow',?function()?{});

//?所以你可以寫成
animate({width:?2},?'slow',?function()?{aniDiv()});

//?很顯然,你已經將要執行的代碼封裝成一個function,而且不帶參數,所以可以使用以下寫法
animate({width:?2},?'slow',?aniDiv);


查看完整回答
3 反對 回復 2016-06-29
  • 快樂崇拜tager
    快樂崇拜tager
    animate({width: 2}, 'slow', aniDiv); 如果帶參數這個要怎么寫了,還能簡寫嗎?
  • Suber丶林
    Suber丶林
    帶參數的話,就簡寫不了了,只能按我上面第二種方法。 執行方法寫成aniDiv(param);醬紫帶上參數即可。
?
老猿

TA貢獻86條經驗 獲得超82個贊

加括號就是執行

查看完整回答
1 反對 回復 2016-06-30
?
qyy2499760117_葉子

TA貢獻188條經驗 獲得超91個贊

? $("#box").animate({width:100},"slow",aniDiv); ? ? ?//該處調用aniDiv函數,沒寫小括號,為什么?

這句是在? function aniDiv()這個函數里,

查看完整回答
反對 回復 2016-06-30
  • 3 回答
  • 0 關注
  • 2945 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號