2014-10-10 230 views
0

我有以下開始我的jQuery:如何捕捉未捕獲的類型錯誤

(function($) { 
    $.widget('ui.hbTags', { 
     options: { 
      availableTags: [], 
      node: false, 
      tagList: false, 
      existingTags: false, 
      placeholder: false, 
      ajaxUrl: false, 
      existingUrl: false, 
      csrftoken: false 
     }, 

不過,我得到uncaught typeerror undefined is not a function在第2行,我知道這是因爲ui.hbTags是不是每個頁面上的元素,但如何爲了防止這個問題?

+1

'如果($( 'ui.hbTags'))' – loveNoHate 2014-10-10 17:58:15

+0

爲什麼不添加它特定頁面只在需要的地方 – 2014-10-10 17:59:06

+0

@EhsanSajjad,因爲對於最佳實踐頁面加載時間來說效率不高。您應該連接並分發到CDN。 – alias51 2014-10-10 17:59:50

回答

0

我只會在調用widget之前檢查標籤是否在頁面上。

(function($) { 
    if($('ui.hbTags').length > 0) { 
     $.widget('ui.hbTags', { 
      options: { 
       availableTags: [], 
       node: false, 
       tagList: false, 
       existingTags: false, 
       placeholder: false, 
       ajaxUrl: false, 
       existingUrl: false, 
       csrftoken: false 
      }, 
0

如果(typeof運算$(EL)不等於 '未定義') 使用此psedo代碼的代碼之前