10

我的机会很小,但我已经通过谷歌尝试了几个解决方案,但似乎没有任何东西可以解决“未捕获的类型错误:无法调用未定义的方法“应用”,匿名函数:

在此处输入图像描述

如果在没有其他 JS 的情况下单独使用它,但是当与其他脚本在同一页面上组合时,我会收到错误消息。

它引用的代码行如下,第 32 行是罪魁祸首。第 32 行是这一行 - if ( resizeTimeout ) { clearTimeout( resizeTimeout ); }

var $event = $.event, resizeTimeout;

    $event.special.smartresize  = {
        setup: function() {
            $(this).bind( "resize", $event.special.smartresize.handler );
        },
        teardown: function() {
            $(this).unbind( "resize", $event.special.smartresize.handler );
        },
        handler: function( event, execAsap ) {
            // Save the context
            var context = this,
                args    = arguments;

            // set correct event type
            event.type = "smartresize";

            if ( resizeTimeout ) { clearTimeout( resizeTimeout ); }
            resizeTimeout = setTimeout(function() {
                jQuery.event.handle.apply( context, args );
            }, execAsap === "execAsap"? 0 : 100 );
        }
    };
4

5 回答 5

10

我通过查看代码设法弄清楚了这一点,有一种称为“模拟”的方法,您可以使用它来“搭载捐赠者事件以模拟不同的事件。”,“伪造 originalEvent 以避免捐赠者的 stopPropagation,但如果模拟事件防止违约,然后我们对捐赠者做同样的事情。” 这让我觉得“在 Brandon Aaron 的教程中设置事件类型”的目的

代替:

event.type = "myType";
jQuery.event.handle.apply(this, arguments);

利用:

jQuery.event.simulate('myType', this, event);
于 2013-04-25T14:01:28.563 回答
5

猜测您正在加载更新版本的 jQuery。看起来好像jQuery 1.9和后来没有这个jQuery.event.handle属性。

据我所知,这从来都不是受支持的属性。

http://jsfiddle.net/xPJN4/

于 2013-03-14T16:46:02.080 回答
0

当我不小心加载了最新版本jquery的头部,然后加载了旧版本的jquery之后,我遇到了这个错误。旧版本没有我需要的新版本的方法。

于 2014-05-09T22:38:15.967 回答
0

当我链接到 jQuery Migrate 时,我的错误得到了修复。

JQMIGRATE:已安装 Migrate,版本 1.4.1

没有更多的错误。对我来说,isotope.js 导致了这个问题。希望它可以帮助随机的人。:)

于 2018-09-20T01:19:05.430 回答
0

我在使用旧版本的 jQuery 和 masonry.min.js 时遇到了这个错误——我不再有未缩小的代码!

更换:

b.event.handle.apply(d,f)

b.event.simulate('smartresize', d, f)

对问题进行了排序,脚本现在运行良好,感谢@karl-forshaw 的修复......我会在重播中发表评论,但缺乏这样做的声誉!

于 2017-01-23T15:17:02.200 回答