2011-12-04 7 views
14

프로젝트에 Brian Cherne의 hoverIntent.js 플러그인을 사용하고 있습니다. 훌륭한 플러그인이지만 jQuery 1.7.1에서는 문제가있는 것으로 보입니다.jQuery hoverIntent : '잡히지 않은 TypeError : 정의되지 않은'apply '메서드를 호출 할 수 없습니다.

나는 그것을 디버깅하려고하는데, 나는 거기서 가장 에이스 javascripter가 아니다. 아무도 내가 다음과 같은 오류 메시지를 해결하기 위해 자신의 코드를 찾기 위해해야 ​​할 수도 있습니다 무엇을 말해 줄 수 : 내 크롬 콘솔이 나에게 말한다 무엇

Uncaught TypeError: Cannot call method 'apply' of undefined

있다고. 나는 무엇을 바꾸어야할지 모르겠습니다.

문자열

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

편집

나는 브라이언의 전체 주석 코드에 링크를 게시해야에 apply이 들어있는 플러그인에서 다음 코드 줄이있다. 그것은 여기 :

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

모든 오류 메시지에 대해 감사드립니다. 하지만 기본적으로 스크립트 코드가 필요합니다. – noob

+0

@micha - 질문을 편집하여 – Brian

+0

동일하지 않습니다. hoverIntent는 이러한 영향을 방지합니다 (http://dreamstarstudios.com/screencasts/2011-12-04_0509.swf). 'hoverIntent'가 없으면 드롭 다운이 빠르게 진행됩니다. 하나의 드롭 다운이 있다면 당신의 제안은 좋겠지 만, 많은 사람들과 함께, 당신의 제안은 좋을 것입니다. – Brian

답변

29

은 기본적으로 hoverIntent 두 가지 기능이나 하나 개의 객체를 필요로 다음과 같이 2

내 스크립트가 http://cherne.net/brian/resources/jquery.hoverIntent.js

편집 할 수 있습니다.

하나의 함수 만 넣으면 함수를 객체로 사용하려고 시도하며 함수를 적용 할 수 없습니다! 그래서 사용하십시오 :

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

겸손과 같은 것은 어디에도 없습니다 ... :) – Andreas

0

'parallax'플러그인에서 같은 문제가있었습니다. jQuery librery 버전을 *jquery-1.6.4*으로 변경했습니다. *jquery-1.10.2*. 오류가 해결되었습니다.

1

두 개의 함수 대신 하나의 개체를 사용하지만 "out"속성이없는 경우 동일한 오류가 발생합니다. 나는 그랬다. "out"을 추가하면 @noob이 이미 다른 구문으로 응답 한 것과 같은 방식으로 수정되므로 다른 사람에게 도움이 될 수 있습니다.

$('#nav-main ul li').hoverIntent({ 
    over: function() { 
    $(this).find('.dropdown').stop(true,true).slideToggle('500'); 
    }, 
    out: function() {} 
}); 
관련 문제