2016-11-23 84 views
3

我只是NuGet更新我的jquery從1.8.3到3.1.1。 然後我不斷收到每個頁面上的這個錯誤。環顧四周後,似乎jquery多次執行,但是當我登錄開發人員工具時,似乎並不是這種情況。jquery 3.1.1錯誤:對象不支持屬性或方法'andSelf'

所以,這是它發生的地方。

jQuery.Deferred.exceptionHook = function(error, stack) { 

    // Support: IE 8 - 9 only 
    // Console exists when dev tools are open, which can happen at any time 
    if (window.console && window.console.warn && error && rerrorNames.test(error.name)) { 
     window.console.warn("jQuery.Deferred exception: " + error.message, error.stack, stack); 
    } 
}; 

jQuery.readyException = function(error) { 
    window.setTimeout(function() { 
     throw error; 
    }); 
}; 

上線 「window.console.warn ......」 它警告 - jQuery.Deferred例外:a。(...)父母(...)andSelf不是一個函數

。 。

而引發錯誤上線「拋出錯誤」 - 遺漏的類型錯誤:一個(...)父母(...)andSelf不是一個函數

任何想法,爲什麼發生這種情況?

回答

5

jQuery在版本1.8中棄用andSelf並在版本3.0.0中將其刪除,這就是爲什麼它在3.1.1中「不是函數」。

您應該使用$.fn.addBack代替,但你已經發布的代碼是jQuery的處理錯誤的部分,這是沒有問題的,介於代碼有一段代碼,說a(...).parents(...).andSelf()這應該是更改爲a(...).parents(...).addBack()

+0

我從來沒有使用和自我,但也許是我之前的開發人員。我會嘗試搜索它。謝謝。 – Tek

+0

@Tek - 在某個地方,它正在被使用,並且由於這是一次重大更改,您必須手動修復代碼並使用'addBack'替換'andSelf'的實例以使其在3.1.1中工作 – adeneo

+0

非常感謝! Jquery-ui,jquery-validate和DataTable庫使用andSelf。我用addBack替換了它們,錯誤消失了。那不應該破壞什麼?我依靠jquery - 驗證了很多。我真的不知道這兩個功能是幹什麼的。 – Tek

相關問題