如何检查jquery中是否存在变量

时间:2014-01-10 22:01:44

标签: jquery variables exists

如果不存在,有没有办法在jquery / javascript中创建变量?

我试过了:

    if (moving.length<0) {
        moving=false;
    }

    if (moving=='undefined') {
        moving=false;
    }

但逻辑上这一切都很糟糕,因为对变量的初始检查已经是未定义的

希望你们能帮忙:)。

第一个答案工作正常但我的问题仍在继续。

$.fn.animation = function() {
    if (typeof moving == 'undefined') {var moving = false;};

    if(moving===false){
        var moving=true;
        console.log('test');
    };      
};


$(window).scroll(function(){
    if($(window).scrollTop() < scrollpos){
        elm.animation();
    }
    scrollpos=$(window).scrollTop();
});

在此设置中,“测试”即使我记录移动设置为真也会不断显示,但仍会被忽略。

所以我要归档的是每次滚动元素时都会检查它是否已经动画了。如果是这样,不要做动画。

基本上是队列

2 个答案:

答案 0 :(得分:13)

你试过吗

if (typeof moving == 'undefined') var moving = false;

在某些情况下,我使用

var moving = typeof moving == 'undefined' ? false : moving;

基本上是相同的,但对我来说,在某些情况下,可以看到变量设置为更高的可读性,无论是原始值还是false,如果它未声明,但第一个版本更常见。

修改

以下是检测滚动

的方法
var scrolled = false;

$(window).on('scroll', function() {
    scrolled = true;
});

//later

if (scrolled) {
    // do stuff
}

答案 1 :(得分:3)

if( typeof moving === 'undefined' )
{
    var moving;

    moving = false;
}

会工作。