Наведение курсора и мыши в цикле
Мы используем плагин jquery tiptip для отображения всплывающих подсказок, страница динамическая.
Код отлично работает для ie8 и firefox, но в ie7 он входит в бесконечный цикл, и я получаю предупреждение об ошибке памяти. Код есть,
$('a[toolTip]').live('mouseover', function(e) {
$(this).tipTip({attribute:"toolTip"});
$(this).trigger('mouseenter');
});
Мы используем подсказку в качестве атрибута для подсказки. Когда я удаляю триггерную строку ввода кода мыши, он работает и в IE7, но не при первом наведении, а только при втором. Вот почему я добавил следующую строку кода
$(this).trigger('mouseenter');
Пожалуйста, помогите мне исправить этот бесконечный цикл в IE7.
С уважением Хари
2 ответа
Подсказка работает при втором наведении, поскольку атрибут при первом наведении не установлен. Бесконечный цикл происходит, потому что вы снова запускаете событие мыши в обработчике, что не должно быть сделано. Проходя по сайту плагина tiptip, способ инициализации плагина:
$("a[toolTip]").tipTip({"attribute":"tooltip"});
Это в свою очередь вызовет автоматически, когда вы наводите курсор на элемент. Не нужно отдельно прикреплять события мыши для элементов.
Взглянул на документацию. Кажется, что самый простой способ достичь этого.
$('a[toolTip]').tipTip({'activation' : 'hover'});
Это обеспечит активацию всех элементов функцией наведения, и вам не нужно беспокоиться о делегировании обработчиков событий.