2011-12-04 16 views
14

私はプロジェクトにBrian CherneのhoverIntent.jsプラグインを使用しています。これは素晴らしいプラグインですが、jQuery 1.7.1では壊れているようです。jQuery hoverIntent: 'Uncaught 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)}};

EDIT

私はブライアンの完全なコメントコードへのリンクを投稿すべきで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'がなければ、ドロップダウンはすぐにあなたの向こう側に並ぶように急に待ち行列に入ります。 1つのドロップダウンがあった場合、あなたの提案は良いでしょうが、多くの場合、 'hoverIntent'が優れています。 – Brian

答えて

29

基本的にhoverIntentは2つの機能または1つのオブジェクトを必要とし、次のようにhttp://cherne.net/brian/resources/jquery.hoverIntent.js

EDIT 2

私のスクリプトです。

あなたが関数を1つだけ入れると、関数をオブジェクトとして使用しようとしますが、関数を適用することはできません!だから使用:

$('#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

2つの関数の代わりに1つのオブジェクトを使用していて、 "out"プロパティがない場合は、同じエラーが発生します。やった。 "out"を追加すると@noobと同じ方法で修正されます。構文が異なるだけで、誰かを助けるかもしれません。

$('#nav-main ul li').hoverIntent({ 
    over: function() { 
    $(this).find('.dropdown').stop(true,true).slideToggle('500'); 
    }, 
    out: function() {} 
}); 
関連する問題