2016-02-12 88 views
-4

出于某种原因,我似乎无法提醒变量的值,我的变量是全球性的,并在页面顶部定义...警报变量返回“未定义”

var slickTog = 'dsadsdasd'; 

然后我有一个窗口大小调整功能,我只有警报,它不起作用!

function windowSize(){ 
    alert(slickTog); 
    ... 
} 

windowSize(); 

$(window).on('resize',function(){ 
    windowSize(); 
}); 

有没有人有一个想法,为什么这不工作?我已经附上的jsfiddle太...

https://jsfiddle.net/7024manL/

回答

4

你无论是在全球范围内定义slickTog,而且功能范围。警报将首先使用函数范围,这就是为什么你没有得到你期望的行为。

在你的小提琴线18,删除了var所以它只是:

slickTog=true; 
2

您重新定义slicktog

变化var slickTog = true只是slickTog = true

1

您的变量slickTog被悬挂在功能windowSize

var slickTog = 'dsadsdasd'; 
function windowSize(){ 
alert(slickTog); 
    switchImg(); 
    if($(window).width()<768){ 
    $('.active-pane .carousel').attr('data-interval','true'); 
    $('.active-pane .carousel').carousel({interval:5000});   
    $('.filtering').slick({ 
     slidesToShow: 1, 
     slidesToScroll: 1 
    });  
    var filtered = false; 

    slickTog=true; //was declared var slickTog = true; 

    $('.js-filter').on('click', function(){ 
     if (filtered === false) { 
     $('.filtering').slick('slickFilter',':even'); 
     filtered = true; 
     } else { 
     $('.filtering').slick('slickUnfilter'); 
     filtered = false; 
     } 
    });  
    } else { 
    $('.active-pane .carousel').attr('data-interval','false'); 
    alert(slickTog); 
    } 
} 

windowSize(); 

$(window).on('resize',function(){ 
    windowSize(); 
});