Qual è il modo migliore per creare un collegamento a una riga di una tabella HTML? Attualmente sto usando jquery per zebra stripe le righe e anche per evidenziare onmouseover/off row selezionato, quindi se JavaScript è la risposta, per favore usa jquery.Link riga tabella HTML
risposta
mi basta usare i CSS:
<style>
table.collection {width:500px;border-collapse:collapse;}
table.collection tr {background-color:#fff; border-bottom: 1px #99b solid;}
table.collection tr:hover {background-color:#ffe;}
table.collection td {display:table-cell;border-bottom: 1px #99b solid; padding:0px;}
table.collection td a {text-decoration:none; display:block; padding:0px; height:100%;}
</style>
<table class="collection">
<tr>
<td><a href="#">Linky1</a></td>
<td><a href="#">Data1</a></td>
</tr>
<tr>
<td><a href="#">Linky2</a></td>
<td><a href="#">Data2</a></td>
</tr>
</table>
La migliore soluzione di gran lunga.Il browser continua a vedere questo come un collegamento, quindi' Apri in scheda 'o' copia collegamento 'funzionerà.Le altre soluzioni si rompono il mio browser! C'è spazio per un JQuery soluzione che automatizza il precedente tramite la manipolazione del DOM. –
Ho problemi con questa soluzione: se una delle celle della tabella contiene abbastanza contenuto per avvolgere linee, l'altezza delle celle vicine non si estenderà fino alla massima altezza. soluzione alternativa per questo caso? – troelskn
Questo suona come un problema di modalità strane IE. Non vedo questo in firefox o IE 7-8 con "- // W3C // DTD XHTML 1.0 Strict // EN". Potrebbe anche non funzionare in IE 6 (ma cosa fa?) –
Registrare un gestore di eventi onclick per l'elemento tr. Qualcosa di simile utilizzando jQuery:
$("tr").bind("click", function(){
window.location = 'http://www.example.com/';
});
Questo link non ti collega alla stessa posizione su ogni riga? – RuudKok
È possibile utilizzare un input nascosto in ogni tr per memorizzare l'url. –
Questo effettivamente collegherà lo stesso link ad ogni riga, modificherà secondo le tue esigenze .. –
$(document).ready(function(){
$("tr").click(function(){
/* personally I would throw a url attribute (<tr url="http://www.hunterconcepts.com">) on the tr and pull it off on click */
window.location = $(this).attr("url");
});
});
Ok, è grandioso, ma come lo si apre in una nuova finestra? Come se fosse un ... anche in questo modo (solo se si fa clic su
si potrebbe usa 'window.open' – hunter
Il problema si presenta quando le persone cercano di fare clic su' tr' nello stesso modo in cui fanno clic su un elemento 'a' (ad esempio shift + clic o cmd + clic per nuove schede, ecc.) – hohner
<td>
<a href="/whatevs/whatevs">
<div class="tdStreacher"> linkName
</div>
</a>
</td>
.tdStreacher{
height: 100%;
width: 100%;
padding: 3px;
}
In questo modo, tutta l'area di ciascuna cella agirà come un link, di conseguenza, l'intera la fila funge da collegamento.
non ha visto la soluzione accettata eh? Non funziona nel 1999/xhtml perché altezza: il 100% non copre necessariamente la cella completa. – dube
Ecco un plugin jQuery basato sulla soluzione di Nick.
(function($) {
$.fn.linkWholeRows = function() {
// for each object
return this.each(function() {
// for each row
$(this).find('tbody tr').each(function() {
// get the first link's href
var href = $(this).find('td > a').attr('href');
// if none found then
if (href === undefined) {
return true; // continue
}
// wrap all cells with links that do not already have a link
$(this).children().not(':has(a)').each(function() {
$(this).contents().wrapAll('<a href="' + href + '" />');
});
// apply the row's height to all links
// in case that the cells' content have different heights
var height = $(this).children().css('height');
$(this).find('td > a').each(function() {
$(this).css('height', height);
// do not forget to apply display:block to the links
// via css to make it work properly
});
}); // each row
}); // each object
};
})(jQuery);
Si aspetta che le righe vengano avvolte nel tbody's. L'altezza è impostata in modo esplicito in quanto la soluzione originale di Nick non ha funzionato per me su celle vicine con altezze diverse. Assicurati di disegnare a-elementi come blocchi. Se si desidera applicare imbottiture, applicarlo alla A-elementi, invece di celle di una tabella:
a {
display: block;
padding: 0.25em 0.5em;
}
tbody td { padding: 0; }
Chiamate
$('#your-table').linkWholeRows();
Speranza che aiuta. Cheers, Richard
Non hai bisogno di jQuery, se non ti dispiace la sostituzione del tavolo da elementi generici:
<style>
.table {
border-collapse: collapse;
border-spacing: 0;
display: table;
}
.tr {
display: table-row;
}
.td {
display: table-cell;
}
</style>
<section class="table">
<a class="tr" href="#">
<div class="td">
A
</div>
<div class="td">
B
</div>
<div class="td">
C
</div>
</a>
</section>
Non si mantiene il significato semantico ottenuto usando i tag table, tr e td con questa soluzione. – Andreas
- 1. Riduzione altezza riga tabella HTML
- 2. altezza Fix di una riga di tabella in tabella HTML
- 3. CakePHP HTML Link
- 4. Come ottenere una riga della tabella HTML con Capybara
- 5. Link HTML che forza l'aggiornamento?
- 6. Link relativi Non funziona sulla pagina HTML
- 7. tabella html trova riga prima dell'ultima utilizzando jquery
- 8. Tabella HTML scorrevole con riga superiore e colonna sinistra congelate
- 9. fila accodamento dopo la prima riga in una tabella html
- 10. Javascript Aggiungi riga alla tabella HTML e ID dell'incremento
- 11. Evidenziando la riga cliccato di una tabella HTML a righe
- 12. jQuery: Ultimo td di ogni riga nella tabella html
- 13. Come aggiungere dinamicamente una riga alla tabella html
- 14. Fare una riga di tabella (tr) cliccabile con jQuery (con un link href, e librarsi !?)
- 15. ricerca nella tabella html
- 16. jQuery tabella riga clone
- 17. documento di importazione HTML usando HTML link rel
- 18. WhatsApp HTML condivisione link per l'immagine
- 19. Ottieni tutti i link sulla pagina html?
- 20. Come scrivere tag HTML in "link" CakePHP
- 21. CHtml :: link - come aggiungere una classe html?
- 22. Elimina oggetti in Django tramite link html
- 23. Ruby url to html link conversion
- 24. Converti la prima riga della tabella HTML in una riga di intestazione per ogni tabella utilizzando XSLT
- 25. Centra allinea una tabella HTML
- 26. Come far espandere td (cella) dalla tabella html per far rientrare la riga in una riga?
- 27. utilizzando onClick in una riga di tabella che ha anche i link in esso
- 28. tabella HTML td significato
- 29. TextView con tabella html
- 30. tabella HTML ordinata
Google criteri di ricerca 'collegamento jquery tr' mi ha dato un paio di soluzioni già. Forse dovresti provarlo anche tu? Non sto rispondendo alla tua domanda perché non ho alcuna esperienza jquery, quindi potrei dire qualcosa di 'stupido' ;-) – RuudKok
sì, ti dà risultati ma non prenderei in considerazione la maggior parte di loro risposte. Se io google "dog poop tr link" ottengo anche "risposte". :) – hacintosh
Le due soluzioni JQuery proposte sono problematiche per usabilità e accessibilità. La soluzione CSS è migliore per qualsiasi sito web pubblico. Vedi i miei commenti lì. –