JQuery: Справка по триггерам - PullRequest
1 голос
/ 09 февраля 2011

Я использую плагин cluetip jQuery.

Я пытаюсь добавить свою кнопку закрытия.Jquery, который я пытаюсь вызвать:

 $(document).bind('hideCluetip', function(e) {
  cluetipClose();
});

Существует много ссылок на cluetipClose () через код и кнопку, которую jquery вставляет, использует его и работает так, чтобы работать, насколько яm прекрасно работает.

Я пытаюсь вызвать это с помощью

$('a.close-cluetip').trigger('hideCluetip');

Я создал свою ссылку:

<a href="#" class="close-cluetip">Close</a>

Но это не такчто-нибудь.

Я неправильно звоню?

1 Ответ

1 голос
/ 09 февраля 2011

Проблема здесь в том, что в плагине cluetip функция clueTipClose() находится внутри замыкания, поэтому у вас нет доступа к нему, если вы не находитесь внутри замыкания (то есть внутри кода плагина). Теперь я должен признать, что этот плагин, кажется, не настроен так уж и расширяемо. Если бы они сделали эту функцию доступной через объект «clueTip», который был установлен для каждого элемента, который ее использует, вы сможете добавить еще один метод jQuery в конец замыкания, например так:

$.fn.cluetipClose = function() {
    return this.each(function() {
        var thisCluetip = findCluetipObj(this);

        if (thisCluetip)
            thisCluetip.cluetipClose();
    });
};

Но вам повезло, что вы не можете сделать это легко. Похоже, что этот парень написал свой плагин jQuery с не-OO-кодом внутри замыкания. Бедный ты.

Теперь, с другой стороны, похоже, что этот плагин уже запускает этот код непосредственно после создания экземпляра функции cluetipClose(). Вы пытались просто сделать это из своего кода:

$('a.close-cluetip').trigger('hideCluetip');

Без повторного выделения документа hideCluetip bind? Я думаю, что это должно сработать.

...