警告变量返回'undefined'

时间:2016-02-12 14:20:06

标签: javascript jquery

出于某种原因,我似乎无法提醒变量的值,我的变量是全局的,并在页面顶部定义...

var slickTog = 'dsadsdasd';

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

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

windowSize();

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

有人知道为什么这不起作用吗?我也附上了一个jsFiddle ......

https://jsfiddle.net/7024manL/

3 个答案:

答案 0 :(得分:4)

您已在全局范围和功能范围中定义了slickTog。警报将首先使用函数范围,这就是您没有得到预期行为的原因。

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

SELECT "To" AS "From", "From" AS "To"
FROM   my_table

答案 1 :(得分:2)

您重新定义了slicktog

var slickTog = true更改为slickTog = true

答案 2 :(得分: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();
});