2016-11-23 138 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

相关问题