Używam wtyczki Briana Cherne'a hoverIntent.js dla projektu. To świetna wtyczka, ale wydaje się, że jest uszkodzony w jQuery 1.7.1.

Próbuję go debugować, ale nie jestem tam najbardziej ona JavaScripter. Czy ktoś może mi powiedzieć, co może potrzebować, aby szukać w swoim kodzie, aby naprawić następujący komunikat o błędzie:

Uncaught TypeError: Cannot call method 'apply' of undefined

To właśnie mi mówi moja konsola Chrome. Nie jestem pewien, co zmienić.

W wtyczki znajduje się następny wiersz kodu, który zawiera apply w ciągu

return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};

EDYTUJ

Powinienem zamieścić link do pełnego skomentowanego kodu Briana. Jest tutaj: http://cherne.net/brian/rosources/jquery.Hoverintent.js

EDYCJA 2

Mój skrypt jest następujący

//#nav-main dropdown effects                
$('#nav-main ul li').hoverIntent(function () {
   $(this).find('.dropdown').stop(true,true).slideToggle('500');
});
14
Brian 4 grudzień 2011, 13:49

3 odpowiedzi

Najlepsza odpowiedź

W zasadzie Havertent wymaga dwóch funkcji lub jednego obiektu.

Jeśli umieścisz tylko jedną funkcję, spróbuje użyć funkcji jako obiektu i nie możesz zastosować funkcji! Więc użyj:

$('#nav-main ul li').hoverIntent(function () {
    $(this).find('.dropdown').stop(true,true).slideToggle('500');
}, function(){});
29
noob 4 grudzień 2011, 10:51

Jeśli używasz jednego obiektu zamiast dwóch funkcji, ale bez właściwości "out" miałbyś ten sam błąd. Zrobiłem. Dodawanie "out" naprawia go w taki sam sposób, jak @NOOB już odpowiedział, tylko z różną składnią, więc może komuś pomóc.

$('#nav-main ul li').hoverIntent({
  over: function () {
    $(this).find('.dropdown').stop(true,true).slideToggle('500');
  },
  out: function() {}
});
1
ivn 20 czerwiec 2016, 11:54

Miałem ten sam problem z wtyczką "Parallax". Zmieniłem wersję biblioteki jQuery do *jquery-1.6.4* z *jquery-1.10.2*. I usuń błąd.

0
byJeevan 4 wrzesień 2014, 15:47