J'utilise l'isotope du plugin Jquery. En fonction de la résolution de l'écran, je dois détruire le widget Isotope pour l'empêcher d'exécuter sa fonction. J'utilise le code suivant:
$(window).smartresize(function(){
if($(window).width() < 700) {
container.isotope("destroy");
}else {
container.isotope({$options});
}
});
Cela fonctionne bien sur le premier redimensionnement, le widget isotope est détruit. Cependant, si je redimensionne à nouveau (en dessous de 700px) l’exception suivante est levée:
cannot call methods on isotope prior to initialization; attempted to call method "destroy"
Comment puis-je vérifier si container.isotope existe avant de l'exécuter? container.isotope("destroy");
?
Code de travail complet
$(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})
}
});
});
Réponses:
0 pour la réponse № 1
$(window).smartresize(function(){
if($(window).width() < 700) {
if(container.isotope) {
container.isotope("destroy")
container.isotope = false
}
} else if(container.isotope) {
container.isotope({$options})
}
})
0 pour la réponse № 2
Que diriez-vous:
if (container.isotrope)
//It exists. Do whatever
else
//Does not exist. Do whatever else
end