2017-01-23 59 views
-1

我有砌體博客網站。我使用砌體js插件(http://masonry.desandro.com/)。嘗試趕不能錯誤

但是,如果頁面沒有博客(例如約頁)我得到JS錯誤控制檯:

Bad masonry element: null 

我嘗試用「嘗試捕獲」

(function($){ 

    "use strict"; 

    $(document).ready(function(){ 

     try { 
      var container = document.querySelector('#masonry'); 
      var msnry = new Masonry(container, { 
       itemSelector: '.post-item' 
      }); 
     } catch(err) { 

     } 

    }); 

})(window.jQuery); 

但我仍然獲取此錯誤

回答

0

嘗試catch語句用於捕獲和處理錯誤,而不是禁用它們的容器。 嘗試使用以下代碼防止錯誤:

(function($){ 

    "use strict"; 

    $(document).ready(function(){ 

      if($("#masonry").length) { 
       var container = document.querySelector('#masonry'); 
       var msnry = new Masonry(container, { 
       itemSelector: '.post-item' 
       }); 
      } 

    }); 

})(window.jQuery); 
0

您在控制檯中看到的錯誤消息由插件顯式記錄。

如果你把

catch(err) { 
    console.log('exception is caught', err); 
} 

您將看到異常被抓就好了。 爲了防止該消息出現,您可以添加一個檢查

var container = document.querySelector('#masonry'); 
if(container){ 
    var msnry = new Masonry(container, { 
     itemSelector: '.post-item' 
    }); 
}