1

我有这个自动启动幻灯片的功能,我需要延迟它直到服务器执行查询和回显数据

 $(document).ready(function(){

        $('#camera_wrap_2').camera({
            height: '380px',
            loader: 'bar',
            pagination: false,
            thumbnails: true
        });

    });

我试过这个但没有用

        $(document).ready(function(){
        setTimeout(camera,2000);

    });
    $('#camera_wrap_2').camera({
            height: '380px',
            loader: 'bar',
            pagination: false,
            thumbnails: true
        });
4

3 回答 3

3

如果与

服务器执行查询

你的意思是一些ajax调用然后你需要使用回调并在那里调用你的代码。

否则,在超时示例中,您需要创建一个名为的函数camera,因为这是setTimeout预期的

$(document).ready(function(){
    setTimeout(camera,2000);
});
function camera(){
    $('#camera_wrap_2').camera({
            height: '380px',
            loader: 'bar',
            pagination: false,
            thumbnails: true
    });
}
于 2012-10-16T22:22:08.110 回答
1

如果您尝试做的是.camera在延迟 2 秒后运行该方法,您可以通过将方法放入setTimeout()将在规定的延迟后调用的函数中来执行此操作:

$(document).ready(function(){
    setTimeout(function() {
        $('#camera_wrap_2').camera({
            height: '380px',
            loader: 'bar',
            pagination: false,
            thumbnails: true
        });
    },2000);
});

通常像这样的硬编码等待时间是错误的解决方案。正确的解决方案通常是等待特定事件发生并为该事件设置一个监听器。

我无法从您的问题中看出(因为您没有提供有关您正在等待的服务器响应的信息),但您在这里想要的事件可能是来自对服务器的 ajax 调用的响应。如果是这种情况,那么您可以安装一个回调以完成该 ajax 调用并.camera()在该回调中运行该方法。

于 2012-10-16T22:21:37.507 回答
-1

您还可以使用 delay() jQuery 函数

$(document).ready(function(){

    $('#camera_wrap_2').delay(2000).camera({
        height: '380px',
        loader: 'bar',
        pagination: false,
        thumbnails: true
    });

});
于 2012-10-16T22:24:24.683 回答