Estoy usando la información sobre herramientas de arranque de Twitter con javascript como el siguiente:
$('a[rel=tooltip]').tooltip();
Mi marcado se ve así:
<a rel="tooltip" title="Not implemented" class="btn"><i class="icon-file"></i></a>
Esto funciona bien, pero agrego <a>
elementos dinámicamente y la información sobre herramientas no se muestra para esos elementos dinámicos. Sé que es porque solo ato .tooltip () una vez cuando el documento termina de cargarse con la $(document).ready(function()
funcionalidad típica de jquery .
¿Cómo puedo vincular esto a elementos creados dinámicamente? Por lo general, haría esto a través del método jquery live (). Sin embargo, ¿cuál es el evento que uso para vincular? Simplemente no estoy seguro de cómo conectar el bootstrap .tooltip () con jquery .live ().
He encontrado una forma de hacer que esto funcione es algo como esto:
/* 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();
});
Esto funciona, pero parece un poco hack. También estoy llamando exactamente la misma línea .tooltip () en la llamada $ (lista). Entonces, ¿los elementos que existen cuando la página se carga por primera vez y coinciden con ese selector terminan con la información sobre herramientas dos veces?
No veo ningún problema con este enfoque. Solo estoy buscando una mejor práctica o comprensión del comportamiento.
rel
atributo. Esto no es semántico y se originó hace más de una década como un hack. Hoy en día, cada navegador que se remonta varios años atrás soporta data-*
atributos y no hay más razón para no usarlos.