2013-03-14 55 views
9

我的機會’不確定的」應用是渺茫的,但我已經通過谷歌嘗試了幾個解決方案,但似乎沒有任何修復「遺漏的類型錯誤:無法調用方法」申請,匿名函數「未定義的」:另一個「遺漏的類型錯誤:無法調用‘

enter image description here

它的工作原理,如果對自己沒有其他的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

猜測您正在加載更新版本的jQuery。看起來好像jQuery 1.9和更高版本沒有jQuery.event.handle屬性。

據我所知,這不是一個受支持的屬性。

http://jsfiddle.net/xPJN4/

+0

好的,歡呼聲。該代碼取自使用v1.8.3的教程。代碼的生存會有什麼好處? – egr103 2013-03-14 16:47:55

+0

@ egr103:我不確定那個方法是幹什麼的,所以我不能提出一個替代方案。教程決定使用不受支持的功能太糟糕了。 – 2013-03-14 16:50:52

+0

我也是。好吧。我甚至刪除了該行,但它不能解決我希望它會修復的問題。 – egr103 2013-03-14 16:57:55

10

我設法通過查看代碼摸不着頭腦,有一個名爲「模擬」,你可以用它來方法「供體事件背馱式來模擬不同的一個。」,「假原來的事件,以避免捐助者停止傳播,但如果模擬事件防止違約,那麼我們對捐助者也是這樣做的。「這讓我吃驚的「,在布蘭登·艾倫的教程設置的事件類型

相反的目的:

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

用途:

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

我遇到這個錯誤時,我不小心裝最新版本在頭jquery,然後後加載的jquery舊版本。舊版本沒有,我從較新版本所需要的方法。

0

我有這個錯誤使用舊版本的jQuery和masonry.min.js - 我不再有未縮小的代碼!

更換:

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

隨着

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

排序的問題和腳本現在做工精細,信貸@卡爾 - 福肖用於修復...我會在重播發表評論,但缺乏這樣做的聲譽!

相關問題