-1

我正在制作一个函数,并在其顶部添加了 if 语句。我想在用户滚动时更改变量值。如果用户滚动 if 语句检查变量值并在 if 语句中运行函数

var usrscrolled = 'notscroll';
    function scrolled() {
        //do by scroll start
        usrscrolled = 'scroll';
    }
    $(window).on('scroll', scrolled);
    if (usrscrolled = 'notscroll') {

}

此代码有效,但 onscroll 变量不会更改,并且 if 语句在滚动时运行

4

3 回答 3

1

=用于赋值,比较你需要使用==,所以改变

if (usrscrolled = 'notscroll') {

if (usrscrolled == 'notscroll') {
于 2013-08-12T05:35:54.460 回答
0

我认为您错过if了滚动后该语句未运行:

// Unnecessary if; usrscrolled will always be 'notscroll' here
// This does _not_ run on scroll
if (usrscrolled === 'notscroll') {

}

如果你想要这样,你需要将它包装在on处理程序中,即像这样:

function scrolled() {
    if (usrscrolled === 'notscroll') {
        // Do something before the variable is set to 'scroll'
        // I.e. first time user scrolls
    }
    usrscrolled = 'scroll';
}
$(window).on('scroll', scrolled);
于 2013-08-12T07:35:46.930 回答
0

我已经添加了这段代码

var delay = 1000;
var timeout = null;
$(window).bind('scroll', function() {
    clearTimeout(timeout);
    timeout = setTimeout(function() {
        usrscrolled = 'notscroll';
    }, delay);
});

当用户停止滚动时,它会在 1 秒后更改变量值。它对我有用

于 2013-08-15T05:14:46.700 回答