光滑的SetTimeout功能

时间:2012-02-28 23:27:08

标签: javascript jquery javascript-events

我在一个页面上创建一个网站,如幻灯片,这是我的代码和功能jsFiddle

我需要帮助两件事。

1)第二页上的SetTimeout,如果没有人点击任何按钮/链接5秒,它会自动返回到第一页,而不会点击任何按钮/链接。

2)在第三页上,目前有一个“谢谢”标签,我想完全删除该标签,因此它只会是页面上的图像。 3秒后,它应自动返回第一页。

如何在这两个页面上设置setTimeout才能实现上述两个功能?任何帮助表示赞赏。

谢谢!

1 个答案:

答案 0 :(得分:3)

如果您将此代码添加到a.panel click事件处理程序的开头,您的超时将会生效:

//cache all the `a.panel` elements and setup a timer for our `setTimeout`s
var $panels = $('a.panel'),
    timer   = null;

//add click event handlers to all the `a.panel` links
$panels.click(function () {


    //clear our timer so we don't get redirected back to `#item1` after clicking a link in a timely manor
    clearTimeout(timer);
    timer = null;

    //cache the value of `$(this)` since we will use it more than once
    var $this = $(this);

    //check if we just clicked the link to the second page
    if ($this.attr('href') == '#item2') {

        //set a timer to return to the first page after five seconds of inactivity
        timer = setTimeout(function () {
            $panels.filter('[href="#item1"]').trigger('click');
        }, 5000);

    //check if we just clicked the link to the third page
    } else if ($this.attr('href') == '#item3') {

        //set a timer to return to the first page after three seconds of inactivity
        timer = setTimeout(function () {
            $panels.filter('[href="#item1"]').trigger('click');
        }, 3000);
    }

以下是演示:http://jsfiddle.net/jasper/EXfnN/28/