![](/img/trans.png)
[英]jQuery hoverIntent: 'Uncaught TypeError: Cannot call method 'apply' of undefined'
[英]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
屬性。
據我所知,這從來都不是受支持的財產。
當我不小心將最新版本的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.