0

jQuery のメソッドの代わりにhoverIntent jQuery プラグインを使用しています。mouseoutイベントが自動的に呼び出されるようにしますhover()

を使用する場合hover()、 を呼び出すことで mouseout イベントをトリガーできmouseout()ます。hoverIntent を使用している場合、これは機能しません。

名前付き匿名関数も呼び出してみましたが、うまくいきませんでした (古い IE は名前付き匿名関数を好まないと聞きました)。

jsFiddle の例を次に示します。

mouseout関数を自動的に呼び出すと、hoverIntent を介して呼び出すことはできません。

今、私はできることを知っています...

$('something').hoverIntent(function() { }, something);

something();

しかし、私が望んでいたことが可能かどうか疑問に思っていましたか?

ありがとう

4

1 に答える 1

2

残念ながら、名前付き関数以外の方法はなく、プラグインの構造もありません...プラグインを閉じるためだけに、後でアクセスできる方法で保存されることはありません。

ここに設定されています:

$.fn.hoverIntent = function(f, g) {
    // default configuration options
    var cfg = {
        sensitivity: 7,
        interval: 100,
        timeout: 0
    };
    // override configuration options with user supplied object
    cfg = $.extend(cfg, g ? {
        over: f,
        out: g
    } : f);

...その後、すべての参照はcfg、プラグイン内でのみアクセス可能なオブジェクトへの参照になります。プラグインを変更cfgしてそのオブジェクトを保存したい場合.data()は、たとえば可能ですが、現状では、匿名ハンドラーにアクセスしたりトリガーしたりする方法はありません。

于 2010-12-09T00:33:10.800 に答える