如何在setTimeout中包装脚本

时间:2013-01-09 23:16:09

标签: javascript jquery

我有一些jquery代码,当单击选项卡时,它会将图像滑块重置为幻灯片1。问题是,它会立即发生,因此在标签淡出之前,您会看到重置滑块有一点闪烁。

我希望将重置“保持”大约半秒,直到它淡出为止。

我被告知需要将代码包装在“setTimeout”函数中,所以我希望能帮助您解决这个问题。

我正在谈论的是本页的“工作”部分:www.oncreative.com.au

这是重置滑块的代码:

<script>
    $('.reset').click(function() {
    $('.workslider').each(function() {
           var s = $(this).data('royalSlider');
           s.st.transitionSpeed = 0;
            s.goTo(0);
            setTimeout(function() {
                s.st.transitionSpeed = 600;
            }, 10); 
    });
    });
</script>

提前致谢!

2 个答案:

答案 0 :(得分:2)

setTimeout(function(){
 // your code here.
},500);

setTimeout有两个参数 - 第一个是你的代码,第二个是延迟它的时间(以毫秒为单位)。

答案 1 :(得分:0)

这是一个非常基本的jsFiddle,它应该提供一个setTimeout实际操作的简单示例:http://jsfiddle.net/A5dQn/

在您的具体案例中:

// First you need to wrap the code you want to be
// executed when the timeout fires in a function:
function resetSliders () {
    $('.workslider').each(function() {
        var s = $(this).data('royalSlider');
        s.st.transitionSpeed = 0;
        s.goTo(0);
        setTimeout(function() {
            s.st.transitionSpeed = 600;
        }, 10); 
    });
};

// Then simply pass in a reference to your function to the setTimeout function.
$('.reset').click(function() { window.setTimeout(resetSliders, 500); } );

编辑:显然,您希望在超时中包含在click事件上执行的代码,而不是附加click事件本身。遗憾!