Sto usando le descrizioni dei bootstrap di Twitter con javascript come il seguente:
$('a[rel=tooltip]').tooltip();
Il mio markup è simile al seguente:
<a rel="tooltip" title="Not implemented" class="btn"><i class="icon-file"></i></a>
Funziona bene, ma aggiungo <a>
elementi in modo dinamico e le descrizioni dei comandi non vengono visualizzate per quegli elementi dinamici. So che è perché rilevo .tooltip () solo una volta quando il documento è finito caricato con la tipica $(document).ready(function()
funzionalità jquery .
Come posso associarlo a elementi creati dinamicamente? Di solito lo farei tramite il metodo jquery live (). Tuttavia, qual è l'evento che utilizzo per associare? Non sono sicuro di come collegare il bootstrap .tooltip () con jquery .live ().
Ho trovato un modo per far funzionare questo è qualcosa del genere:
/* 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();
});
Funziona, ma sembra un po 'hacker. Sto anche chiamando la stessa identica linea .tooltip () nella chiamata $ (pronto). Quindi, gli elementi che esistono quando la pagina viene caricata per la prima volta e corrispondono a quel selettore finiscono due volte con la descrizione comando?
Non vedo alcun problema con questo approccio. Sto solo cercando una migliore pratica o comprensione del comportamento.
rel
attributo. Questo non è semantico ed è stato originato oltre un decennio fa come un hack. Al giorno d'oggi, ogni singolo browser che risale a diversi anni supporta gli data-*
attributi e non c'è più motivo per non usarli.