为分页导航功能添加延迟

时间:2014-08-02 21:39:29

标签: javascript

我希望为我找到的分页导航功能添加一个延迟,以便当用户按下前进或后退按钮时,代码将在实际导航到页面之前延迟600毫秒。

我一直关注的代码是:

paginatelinks[i].onclick = function () {
    setTimeout(function () { instanceOfBox.navigate(this.getAttribute('rel')) }, 600)
    return false
}

如果我向onClick添加600ms的setTimeout函数,我会收到错误“未定义不是函数'

以下是整个分页功能的JSFIDDLE

以下是onClick函数的片段:

paginate.prototype.paginate_build_regularlinks = function (paginatelinks) {
var instanceOfBox = this
for (var i = 0; i < paginatelinks.length; i++) {
    var currentpagerel = paginatelinks[i].getAttribute('rel')
    if (/^(previous)|(next)|(first)|(last)$/.test(currentpagerel)) { //screen for these 'rel' values
        paginatelinks[i].onclick = function () {
            instanceOfBox.navigate(this.getAttribute('rel'))
            return false
        }
    }
    if (currentpagerel == 'previous' || paginatelinks[i].href.indexOf('previous') != -1) { //check if this is a 'previous' link
        if (!this.wraparound && this.currentpage == 0) //if current page is first page, disable 'prev' link
            paginate.setcssclass(paginatelinks[i], 'disabled', 'add')
        this.prevlinks.push(paginatelinks[i])
    }
    else if (currentpagerel == 'next' || paginatelinks[i].href.indexOf('next') != -1) { //check if this is a 'next' link
        if (!this.wraparound && this.currentpage == this.pagecount - 1) //if current page is last page, disable 'next' link
            paginate.setcssclass(paginatelinks[i], 'disabled', 'add')
        this.nextlinks.push(paginatelinks[i])
    }
}
}

1 个答案:

答案 0 :(得分:1)

执行setTimeout时,不再有“this”。 尝试将其保存在变量中,然后使用变量。

相关问题