提醒变量返回“未定义”

Alert a variable returns 'undefined'

本文关键字:未定义 返回 变量      更新时间:2023-09-26

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

var slickTog = 'dsadsdasd';

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

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

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

https://jsfiddle.net/7024manL/

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

在小提琴的第 18 行,删除 var,这样它就是:

slickTog=true;

你重新定义 slicktog

var slickTog = true更改为仅slickTog = true

您的变量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();
});