0

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

使用时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 回答