Я использую всплывающие подсказки Twitter-бутстрапа с помощью javascript, например:
$('a[rel=tooltip]').tooltip();
Моя разметка выглядит следующим образом:
<a rel="tooltip" title="Not implemented" class="btn"><i class="icon-file"></i></a>
Это отлично работает, но я добавляю элементы <a>
динамически и всплывающие подсказки не отображаются для этих динамических элементов. Я знаю это, потому что я только связываю .tooltip() один раз, когда документ завершен, загружается с типичной функциональностью jquery $(document).ready(function()
.
Как связать это с динамически создаваемыми элементами? Обычно я делаю это с помощью метода jquery live(). Однако, какое событие я использую для привязки? Я просто не знаю, как подключить bootstrap.tooltip() с помощью jquery.live().
Я нашел один способ сделать эту работу примерно следующим:
/* Add new 'rows' when plus sign is clicked */
$("a.add").live('click', function () {
var clicked_li = $(this).parent('li');
var clone = clicked_li.clone();
clone.find(':input').each(function() {
$(this).val('');
});
clicked_li.after(clone);
$('a[rel=tooltip]').tooltip();
});
Это работает, но кажется хакерским. Я также вызываю ту же самую строку .tooltip() в вызове $(ready). Итак, выполняются ли элементы, которые существуют, когда страница сначала загружается и совпадает с этим селектором, с помощью всплывающей подсказки дважды?
Я не вижу никаких проблем с этим подходом. Я просто ищу лучшую практику или понимание поведения.