我正在使用 Jquery 插件同位素。根据屏幕分辨率,我需要销毁同位素小部件以防止其运行其功能。我正在使用以下代码:
$(window).smartresize(function(){
if($(window).width() < 700) {
container.isotope('destroy');
}else {
container.isotope({$options});
}
});
这在第一次调整大小时工作正常,同位素小部件被破坏。但是,如果我再次调整大小(低于 700 像素),则会引发以下异常:
cannot call methods on isotope prior to initialization; attempted to call method 'destroy'
如何在运行前检查 container.isotope 是否存在container.isotope('destroy');
?
完整的工作代码
$(window).load(function(){
var container = $('{$this->selector}')
if($(window).width() > 701){
container.isotope({$options});
}else{
container.isotope = false;
}
$(window).smartresize(function(){
if($(window).width() < 700) {
container.find('.item').removeAttr('style');
if(container.isotope) {
container.isotope('destroy')
container.isotope = false
}
} else{
container = $('{$this->selector}')
container.isotope({$options})
}
});
});