[英]global variable in javascript strict mode
我不断收到错误:
“未捕获的TypeError:无法读取未定义的属性'hasClass'”
我知道它与全局变量和范围有关,但我无法弄清楚。 任何帮助,将不胜感激。
jQuery(function($) {
"use strict";
var global = this;
var carousel = null;
function mobileOnlySlider(carousel) {
carousel = $('.woocommerce-product-gallery__wrapper').slick({
// normal options...
infinite: false,
adaptiveHeight: true,
dots: true,
});//slick slider init
}//mobileOnlySlider function
mobileOnlySlider(global.carousel);
function resetSlick(carousel) {
$(window).on('resize', function() {
if ($(window).width() > 768 ) {
if (carousel.hasClass('slick-initialized')) {
carousel.slick('unslick');
}
else{
console.log("returned nothing.");
return;
}
}
else {
if (carousel.hasClass('slick-initialized')) {
//do nothing
return;
}
else{
mobileOnlySlider(global.carousel);
}
}
});//window resize
}//function resetclick
resetSlick(global.carousel);
})();//plain js version of $window ready
您正在局部范围内重新定义全局变量
var carousel = null;
function mobileOnlySlider(carousel) {
carousel = $('.woocommerce-product-gallery__wrapper').slick({
// normal options...
infinite: false,
adaptiveHeight: true,
dots: true,
});//slick slider init
}//mobileOnlySlider function
在此方法中, carousel
是一个局部变量,而不是您期望的全局变量-当您这样调用时:
mobileOnlySlider(global.carousel);
全局变量未更新。
一种选择是从该方法返回值,并相应地更新变量
var carousel = null;
function mobileOnlySlider() {
return $('.woocommerce-product-gallery__wrapper').slick({
// normal options...
infinite: false,
adaptiveHeight: true,
dots: true,
});//slick slider init
}//mobileOnlySlider function
// elsewhere
carousel = mobileOnlySlider();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.