我正在使用Jquery插件同位素。根据屏幕分辨率,我需要销毁同位素小部件以防止其运行其功能。我使用以下代码:
$(window).smartresize(function(){
if($(window).width() < 700) {
container.isotope('destroy');
}else {
container.isotope({$options});
}
});
这在第一次调整大小时工作正常,同位素小部件被破坏。但是,如果我再次调整大小(低于700px),则抛出以下异常:
cannot call methods on isotope prior to initialization; attempted to call method 'destroy'
如何在运行container.isotope('destroy');
之前检查container.isotope是否存在?
完整的工作代码
$(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})
}
});
});
答案 0 :(得分:0)
怎么样:
if (container.isotrope)
//It exists. Do whatever
else
//Does not exist. Do whatever else
end
答案 1 :(得分:0)
$(window).smartresize(function(){
if($(window).width() < 700) {
if(container.isotope) {
container.isotope('destroy')
container.isotope = false
}
} else if(container.isotope) {
container.isotope({$options})
}
})