簡體   English   中英

另一個'未捕獲的TypeError:無法調用方法'應用'未定義'

[英]Yet another 'Uncaught TypeError: Cannot call method 'apply' of undefined '

我的機會很渺茫但我已經通過谷歌嘗試了幾個解決方案,但似乎沒有解決'未捕獲的TypeError:無法調用方法'應用'未定義',匿名函數:

在此輸入圖像描述

如果它本身沒有其他JS,但是當它與其他腳本組合在同一頁面上時我會收到錯誤。

它引用的代碼行如下,第32行是罪魁禍首。 第32行是這行 - if ( resizeTimeout ) { clearTimeout( resizeTimeout ); } 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 );
        }
    };

我設法通過查看代碼來解決這個問題,有一個名為“模擬”的方法,您可以使用它來“回饋捐贈者事件以模擬不同的一個。”,“假冒原始事件以避免捐贈者的停止傳播,但如果模擬事件防止默認,然后我們對捐贈者做同樣的事情。“ 這讓我感到震驚,因為“在Brandon Aaron的教程中設置事件類型

代替:

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

使用:

jQuery.event.simulate('myType', this, event);

猜猜你正在加載更新版本的jQuery。 似乎jQuery 1.9及更高版本沒有jQuery.event.handle屬性。

據我所知,這從來都不是受支持的財產。

http://jsfiddle.net/xPJN4/

當我不小心將最新版本的jquery加載到頭部時,我遇到了這個錯誤,然后在它之后加載了舊版本的jquery 舊版本沒有我需要的新版本的方法。

我使用舊版本的jQuery和masonry.min.js時出現此錯誤 - 我不再使用未縮小的代碼!

更換:

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

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

排序問題,腳本現在工作正常,歸功於@ karl-forshaw的修復...我會評論重播,但缺乏聲譽這樣做!

當我鏈接到jQuery Migrate時,我的錯誤得到修復。

JQMIGRATE:已安裝Migrate,版本1.4.1

沒有更多的錯誤。 對我來說,isotope.js導致了這個問題。 希望它能幫助隨便的人。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM