Estou usando as dicas de ferramentas de auto-inicialização do Twitter com javascript, da seguinte maneira:
$('a[rel=tooltip]').tooltip();
Minha marcação é assim:
<a rel="tooltip" title="Not implemented" class="btn"><i class="icon-file"></i></a>
Isso funciona bem, mas adiciono <a>
elementos dinamicamente e as dicas de ferramentas não estão aparecendo para esses elementos dinâmicos. Eu sei que é porque eu só vinculo .tooltip () uma vez quando o documento é carregado com a $(document).ready(function()
funcionalidade jquery típica .
Como vincular isso a elementos criados dinamicamente? Normalmente, eu faria isso através do método jquery live (). No entanto, qual é o evento que eu uso para ligar? Só não sei como conectar o bootstrap .tooltip () ao jquery .live ().
Eu encontrei uma maneira de fazer isso funcionar é algo como isto:
/* 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();
});
Isso funciona, mas parece meio tolo. Também estou chamando exatamente a mesma linha .tooltip () na chamada $ (ready). Então, os elementos que existem quando a página é carregada pela primeira vez e correspondem a esse seletor terminam com a dica de ferramenta duas vezes?
Não vejo problemas com essa abordagem. Estou apenas procurando uma melhor prática ou compreensão do comportamento.
rel
atributo. Isso não é semântico e foi originado há mais de uma década como um hack. Atualmente, todos os navegadores que remontam a vários anos suportam data-*
atributos e não há mais motivos para não usá-los.