Annidamento dei tag di ancoraggio HTML
Domanda
Oggi stavo lavorando alla navigazione a schede per una pagina web.Ho provato il Porte scorrevoli approccio che ha funzionato bene.Poi ho capito che dovevo includere un'opzione per eliminare una scheda (di solito una piccola X nell'angolo destro di ogni scheda).
Volevo utilizzare un'ancora annidata, che non ha funzionato perché lo è non consentito.Poi ho visto la navigazione tramite schede su Pageflakes, che funzionava effettivamente (compresi i collegamenti ipertestuali nidificati).Perché?
Soluzione
Devono fare cose davvero pazze con JavaScript per farlo funzionare (nota come né il genitore né i tag di ancoraggio nidificati hanno un nome o un attributo href - tutta la funzionalità viene eseguita tramite il nome della classe e JS).
Ecco come appare l'HTML:
<a class="page_tab page_tab">
<div class="page_title" title="Click to rename this page.">Click & Type Page Name</div>
<a class="delete_page" title="Click to delete this page" style="display: block;">X</a>
</a>
Altri suggerimenti
In realtà, il codice che avevo incollato in precedenza era il DOM generato, dopo tutta la manipolazione di JS.Se non hai il Firebug estensione per Firefox, dovresti scaricarla ora.
Modificare:Cancellato il vecchio post, non era più utile.Firebug lo è, quindi questo resta :)
Ho il sospetto che il funzionamento o il mancato funzionamento dei collegamenti nidificati possa dipendere dal fatto che il browser visualizzi la pagina in modalità rigorosa (ad es.XHTML DTD, application/xml+html MIMEtype), o in modalità "quirks".
Nonostante i tag nidificati siano illegali, scriverli utilizzando JS funzionerà!, prova questo:
$('<a>', {
href: 'http://google.com',
html: '<a>i am nested anchor </a>I am top Anchor'
}).appendTo($('body'))