我可以通过触发一些东西在jQuery中调用这个匿名函数吗?

时间:2010-12-09 00:27:04

标签: javascript jquery hoverintent

我使用hoverIntent jQuery plugin代替jQuery的hover()方法。我希望自动调用 mouseout 事件。

使用hover()时,我可以通过调用mouseout()来触发mouseout事件。使用hoverIntent时,这不起作用。

我也试过调用一个命名的匿名函数,但它对我不起作用(我听说旧的IE不喜欢命名的匿名函数)。

Here is an example on jsFiddle.

如果我自动调用 mouseout 函数,则无法通过hoverIntent调用它。

现在我知道我能做到......

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

something();

但我想知道我想要的是否可能?

由于

1 个答案:

答案 0 :(得分: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()对象,例如您可以,但原则上无法访问或触发匿名处理程序。