JQUERY 基础教程
JQUERY 效果
JQUERY 操纵
JQUERY 高级教程
JQUERY 示例
JQUERY 参考资料

jQuery 回调

在本教程中,您将学习如何为 jQuery 效果定义回调函数。

jQuery 回调函数

JavaScript 语句是逐行执行的。 但是,由于 jQuery 效果需要一些时间才能完成,因此下一行代码可能会在前一个效果仍在运行时执行。 为了防止这种情况发生,jQuery 为每个效果方法提供了一个回调函数。

回调函数是在效果完成后执行的函数。 回调函数作为参数传递给效果方法,它们通常作为方法的最后一个参数出现。 例如,带有回调函数的 jQuery slideToggle() 效果方法的基本语法可以通过以下方式给出:

$(selector).slideToggle(duration, callback);

考虑以下示例,其中我们将 slideToggle()alert() 语句彼此相邻放置。 如果您尝试此代码,则单击触发按钮后将立即显示警报,而无需等待滑动切换效果完成。

<script>
$(document).ready(function(){
    $("button").click(function(){
        $("p").slideToggle("slow");
        alert("The slide toggle effect has completed.");
    });   
});
</script>

而且,这里是先前示例的修改版本,其中我们将 alert() 语句放置在 slideToggle() 方法的回调函数中。 如果您尝试使用此代码,则在幻灯片切换效果完成后将显示警报消息。

<script>
$(document).ready(function(){
    $("button").click(function(){
        $("p").slideToggle("slow", function(){
            // 效果完成后要执行的代码
            alert("The slide toggle effect has completed.");
        });
    });   
});
</script>

类似地,您可以为其他 jQuery 效果方法定义回调函数,如 show(), hide(), fadeIn(), fadeOut(), animate() 等。

注意: 如果效果方法应用于多个元素,则回调函数会为每个选定的元素执行一次,而不是全部执行一次。

<script>
$(document).ready(function(){
    $("button").click(function(){
        $("h1, p").slideToggle("slow", function(){
            // 效果完成后要执行的代码
            alert("The slide toggle effect has completed.");
        });
    });   
});
</script>

如果您尝试上面的示例代码,它会在单击触发按钮时每个 <h1><p> 元素显示相同的警报消息两次。

Advertisements