Jquery всплывающая подсказка с обратным вызовом - PullRequest
0 голосов
/ 08 января 2020

У меня есть таблица html с несколькими строками и столбцами.

<table>
  <tr>
    <td id="td1" class="my_tooltip"></td>
    <td id="td2" class="my_tooltip"></td>
    <td id="td3" class="my_tooltip"></td>
  </tr>
</table>

Используя Jquery UI - Подсказка, каждый элемент td должен загружать разные данные всплывающей подсказки со следующими логами c:

 $(".my_tooltip").tooltip({
    content:  function() {
      //display loading icon gif
      return $('#tooltip_loading').html();
    },
    open: function( event, ui ){
        var elem = $(this);
        var id = elem.attr('id');

        var el_tooltip_id = 'tooltip_' + id;
        var el_tooltip    = '#' + el_tooltip_id;

        // Logic for caching tooltip content
        if ($(el_tooltip).html() === undefined) {
          // Tooltip content not rendered yet - create a new one 
          $("<div/>").attr('id', el_tooltip_id).appendTo($('#tooltips_container'));
          $(el_tooltip).load("backend_call_with_parameter&id=" + id, function() {
            elem.tooltip('option','content',$(el_tooltip).html());
           }
          )
        } else {
            // Tooltip content found - display it
            elem.tooltip('option','content',$(el_tooltip).html());
          }
        }
    }
 });
}

В основном это работает нормально для одиночных обратных вызовов.

Однако, когда пользователь быстро наводит указатель мыши на 2 или более элементов (вызывается больше обратных вызовов). Может быть задержка в выводе обратного вызова, и все элементы всплывающей подсказки, которые пользователь наводил мышкой, заполняются последним выводом обратного вызова.

...