2012-10-04 41 views
0

我正在使用Jquery插件同位素。根據屏幕分辨率的不同,我需要銷燬同位素小部件以防止它運行其功能。我正在使用以下代碼:運行jquery函數之前檢查Widget是否可用

$(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}) 
      } 
     }); 
     }); 

回答

0

 
$(window).smartresize(function(){ 
    if($(window).width() < 700) { 
    if(container.isotope) { 
     container.isotope('destroy') 
     container.isotope = false 
    } 
    } else if(container.isotope) { 
    container.isotope({$options}) 
    } 
}) 

+0

感謝ilan,不得不對代碼做幾處修改。但把它設置爲假的似乎是訣竅。完整的代碼在原始問題中。 – w00tw00t111

0

如何:

if (container.isotrope) 
//It exists. Do whatever 
else 
//Does not exist. Do whatever else 
end 
+0

認爲是在問題中提到,這將工作太Cort3z,但同樣的問題。 – w00tw00t111

相關問題