Я використовую підказки для завантаження у Twitter із JavaScript, наприклад:
$('a[rel=tooltip]').tooltip();
Моя розмітка виглядає так:
<a rel="tooltip" title="Not implemented" class="btn"><i class="icon-file"></i></a>
Це прекрасно працює, але я додаю <a>
елементи динамічно, і підказки не відображаються для цих динамічних елементів. Я знаю, що це тому, що я пов'язую .tooltip () лише один раз, коли документ закінчується завантаженим типовою $(document).ready(function()
функцією jquery .
Як я можу пов’язати це з динамічно створеними елементами? Зазвичай я б це робив методом jquery live (). Однак, що таке подія, яку я використовую для зв’язування? Я просто не впевнений, як підключити завантажувальний файл .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 () у виклику $ (готовий). Отож, чи існують елементи, коли сторінка завантажується вперше і збігається з цим селектором в кінці підказки двічі?
Я не бачу проблем із таким підходом. Я просто шукаю найкращу практику чи розуміння поведінки.
rel
атрибут. Це несемантично і зародилося понад десятиліття тому як хак. Сьогодні кожен браузер, який повертається кілька років, підтримує data-*
атрибути, і немає більше причин не використовувати їх.