Как предотвратить всплывающую подсказку AJAX для всплывающей подсказки jQuery? - PullRequest
0 голосов
/ 13 января 2020

Для некоторых подсказок я использую данные, полученные с помощью 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 с каждым показом всплывающей подсказки. Это ошибка?

Как предотвратить это?

...