Для некоторых подсказок я использую данные, полученные с помощью AJAX.
Элементы:
<div class="with-tooltip" data-num="..">
<span>Some text</span>
<a href="...">Some link</a>
</div>
Мне нужна подсказка для div
.
Для этого я использую jQuery всплывающие подсказки пользовательского интерфейса:
$('div.with-tooltip').tooltip({
items: 'div[data-num]',
content: function(callback) {
AJAX processing...
).then(function(data) {
callback(data.data);
}),
next settings...
});
Все работает, кроме вызова AJAX, в частности инициирующие события для всплывающей подсказки, также делегируются элементам span
и a
и работает два или три раза. Я пытался:
$('div.with-tooltip').on('mouseover remove focusin', function(ev) { ev.preventDefault() });
... но это не работает. Кажется, плагин всплывающей подсказки переназначает слушателей с открытием самой подсказки. Я также попытался отключить делегированных слушателей в then()
части вызова AJAX, но безрезультатно.
У меня там нет дополнительных слушателей.
Также очевидно, что * Функция 1022 * назначает несколько слушателей одновременно (для одного и того же действия) - mouseover
, keyup
, remove
, focusin
с каждым показом всплывающей подсказки. Это ошибка?
Как предотвратить это?