jQuery hoverIntent: 'Uncaught TypeError: Невозможно вызвать метод' apply 'of undefined' - PullRequest
14 голосов
/ 04 декабря 2011

Я использую плагин Брайана Черна hoverIntent.js для проекта. Это отличный плагин, но, похоже, он не работает в jQuery 1.7.1.

Я пытаюсь отладить его, но я не самый лучший javascripter там. Может кто-нибудь сказать мне, что мне нужно искать в его коде, чтобы исправить следующее сообщение об ошибке:

Uncaught TypeError: Cannot call method 'apply' of undefined

Вот что говорит мне моя консоль Chrome. Я просто не уверен, что изменить.

В плагине есть следующая строка кода, которая содержит apply в строке

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

РЕДАКТИРОВАТЬ

Я должен опубликовать ссылку на полный закомментированный код Брайана. Это здесь: http://cherne.net/brian/resources/jquery.hoverIntent.js

РЕДАКТИРОВАТЬ 2

Мой сценарий выглядит следующим образом

//#nav-main dropdown effects                
$('#nav-main ul li').hoverIntent(function () {
   $(this).find('.dropdown').stop(true,true).slideToggle('500');
});

Ответы [ 3 ]

29 голосов
/ 04 декабря 2011

В основном hoverIntent требует две функции или один объект.

Если вы введете только одну функцию, она попытается использовать вашу функцию как объект, и вы не сможете применить функцию!Так что используйте:

$('#nav-main ul li').hoverIntent(function () {
    $(this).find('.dropdown').stop(true,true).slideToggle('500');
}, function(){});
1 голос
/ 20 июня 2016

Если вы используете один объект вместо двух функций, но без свойства out, у вас будет та же ошибка. Я сделал. Добавление «out» исправляет это так же, как @noob уже ответил, только с другим синтаксисом, так что это может кому-то помочь.

$('#nav-main ul li').hoverIntent({
  over: function () {
    $(this).find('.dropdown').stop(true,true).slideToggle('500');
  },
  out: function() {}
});
0 голосов
/ 04 сентября 2014

У меня была такая же проблема с плагином "параллакс".Я изменил версию библиотеки jQuery на *jquery-1.6.4* с *jquery-1.10.2*. И ошибка устранена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...