无法获取未定义或空引用的属性“应用”-IE11 和 Chrome

Posted

技术标签:

【中文标题】无法获取未定义或空引用的属性“应用”-IE11 和 Chrome【英文标题】:Unable to get property 'apply' of undefined or null reference - IE11 and Chrome 【发布时间】:2014-10-31 13:26:54 【问题描述】:

我是 JavascriptjQuery 的新手,无法修复此错误。

当我尝试在 IE11 和 chrome 中调试时出现此错误。最初我得到了

无法获取未定义或空引用的属性“调用”

jquery.validate.min.js 中为event.handle.call 我做了一些研究并通过更改为event.dispatch.call 来修复它。一旦我修复了这个错误并且找不到任何好的解决方案。

我正在使用 jQuery 1.10.* 并希望在调试 IE11Chrome 时修复此错误。

任何建议都会非常有用。向我指出任何有用的资源或可能的解决方法。

编辑:

我在 jQuery-ui-1.10.3.js 的 function handlerProxy 中收到此错误

$.each( handlers, function( event, handler ) 
    function handlerProxy() 
        // allow widgets to customize the disabled handling
        // - disabled as an array instead of boolean
        // - disabled class as method for disabling individual parts
        if ( !suppressDisabledCheck &&
                ( instance.options.disabled === true ||
                    $( this ).hasClass( "ui-state-disabled" ) ) ) 
            return;
        
        return ( typeof handler === "string" ? instance[ handler ] : handler )
            .apply( instance, arguments );
    

【问题讨论】:

在开发过程中,使用未缩小的文件 jquery.validate.js 而不是 jquery.validate.min.js 将帮助您找到错误。尝试使用浏览器的调试器。没有代码就无法提供更多帮助。 @Volune:请查看 EDIT,添加了我遇到错误的功能。 您发布的JS仅在$.each循环范围内创建了一个handlerProxy函数而不会触发它。而且每个人都缺少一个结束)。也因为它是一个循环 handler 将始终引用最后一个,因此即使存在于 handlerProxy 中的变量也将始终具有最后一个 handler 的值 发布的 javascript 是 jquery.ui 的一部分。您的问题很少有可能来自图书馆内部。它可能来自您使用库的方式,这就是您需要在问题中显示的内容。也尝试中断错误并查看调用堆栈。 【参考方案1】:

您可能使用的是过期版本的 jquery.validate。为您的 jquery 版本获取最新版本,它应该可以工作。这就是我解决这个问题的方法。我正在使用 jquery 1.11 和 jquery.validate 1.10 并将 validate 更新到 1.11,它工作正常。

【讨论】:

以上是关于无法获取未定义或空引用的属性“应用”-IE11 和 Chrome的主要内容,如果未能解决你的问题,请参考以下文章

IE10 d3.v3.js 错误:无法获取未定义或空引用的属性“原型”

无法获取未定义或空引用的属性“id”

IE11 上 Drop 文件传输未定义或空引用

无法在 WCF Rest 中获取未定义或空引用的属性“appendChild”

无法获取未定义或空引用的属性 - Windows 8 JS/CSS 应用程序

0x800a138f - JavaScript 运行时错误:无法获取未定义或空引用的属性“mData”