jQuery 回撥函式
在本教程中,你將學習如何為 jQuery 效果定義回撥函式。
jQuery 回撥函式
JavaScript 語句是逐行執行的。但是,由於 jQuery 效果需要一些時間才能完成,下一行程式碼可能會在前一個效果仍在執行時執行。為了防止這種情況發生,jQuery 為每個效果方法提供了一個回撥函式。
回撥函式是一旦效果完成就會執行的函式。回撥函式作為引數傳遞給效果方法,它們通常顯示為方法的最後一個引數。例如,帶有回撥函式的 jQuery slideToggle()
效果方法的基本語法如下:
$(selector).slideToggle(duration, callback);
請考慮以下示例,其中我們將 slideToggle()
和 alert()
語句放在一起。如果試一下此程式碼,則單擊觸發按鈕後將立即顯示警報,而無需等待幻燈片切換效果完成。
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("p").slideToggle("slow");
alert("The slide toggle effect has completed.");
});
});
</script>
而且,這是我們將 alert()
語句放在 slideToggle()
方法的回撥函式中的修改版本。如果你嘗試此程式碼,則幻燈片切換效果完成後將顯示警告訊息。
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("p").slideToggle("slow", function(){
// Code to be executed once effect is complete
alert("The slide toggle effect has completed.");
});
});
});
</script>
同樣,你可以定義其他的 jQuery 效果方法的回撥函式,如 show()
, hide()
, fadeIn()
, fadeOut()
, animate()
等。
注意: 如果效果方法應用於多個元素,則對每個選定元素執行一次回撥函式,而不是對所有元素執行一次。
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("h1, p").slideToggle("slow", function(){
// Code to be executed once effect is complete
alert("The slide toggle effect has completed.");
});
});
});
</script>
如果你嘗試上面的示例程式碼,它會在單擊觸發按鈕時每次 <h1>
和 <p>
元素顯示兩次相同的警報訊息。