Можно ли вызвать эту анонимную функцию в jQuery, вызвав что-то?

Я использую плагин hoverIntent jQuery вместо jQuery hover() метод. Я хочу, чтобы событие mouseout вызывалось автоматически.

Когда используешь hover()Я могу вызвать событие mouseout, вызвав mouseout(), Это не работает при использовании hoverIntent.

Я также пытался вызвать именованную анонимную функцию, но у меня это не сработало (и я слышал, что старые IE не любят именованные анонимные функции).

Вот пример на jsFiddle.

Если я автоматически вызываю функцию mouseout, она не может быть вызвана через hoverIntent.

Теперь я знаю, что могу сделать...

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

something();

Но мне было интересно, возможно ли то, что я хотел?

Спасибо

1 ответ

Решение

К сожалению, кроме именованной функции нет другого способа, кроме как с тем, как плагин структурирован... он не сохраняется каким-либо образом, который доступен позже, только для закрытия плагина.

Это установлено здесь:

$.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() например, вы могли бы, но, как есть, нет способа получить доступ или вызвать анонимный обработчик.

Другие вопросы по тегам