Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    526

    Colorare riga e colonna di una tabella all'hover del mouse in jquery

    Ho una tabella che vorrei manipolare in jquery per fare in modo che quando il mouse è in "hover" su una cella, venga applicata una classe (o uno specifico stile) a tutte le celle della stessa riga e della stessa colonna.

    Al momento ho realizzato questo, che funziona solo sulla riga, ma che agisce appunto sul TR e non su ogni TD (quindi ad esempio, non potrei cambiare il colore del testo).
    codice:
       $(document).ready(function()
       {
          $('td').hover(function()
          {
            $(this).parent().css('background-color', 'red');
          }, function()
          {
            $(this).parent().css('background-color', 'transparent');
          });
       });
    e in ogni caso sarà necessario agire sui TD visto che vorrei applicare lo stile sia sulla riga che sulla colonna.

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649

    Re: Colorare riga e colonna di una tabella all'hover del mouse in jquery

    Originariamente inviato da ldetomi
    (quindi ad esempio, non potrei cambiare il colore del testo)
    se pianificato opportunamente via css non sarebbe questo il problema

    comunque
    dopo parent()
    http://api.jquery.com/find/

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    526

    Re: Re: Colorare riga e colonna di una tabella all'hover del mouse in jquery

    Originariamente inviato da Xinod
    se pianificato opportunamente via css non sarebbe questo il problema
    Via css, accetta il colore del testo solo direttamente dentro alla cella, non se lo dichiaro a livello di riga della tabella... :-) cmq, ora indago find(), grazie.

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    con quale browser?

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    526
    Con IE lo stile sulla riga, come ad esempio lo sfondo... non ha un effetto corretto sullo sfondo delle celle, nel senso che non "filtra" lo sfondo delle righe, ma viene ripetuto lo stile applicato alla riga, per tutte le celle. Se è un colore non si vede ovviamente, ma se è un' immagine....

  6. #6
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    copia e incolla questo esempio (fatto al volo)

    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <title>xhtml 1.0</title>
            
            <style type="text/css">
            td {
                border      : 1px solid #767676;
                width       : 80px;
                height      : 50px;
            }
            
            .trhovered td,
            td.tdhovered {
                background  : #e1e1e5;
                cursor      : pointer;
            }
            
            </style>
            <script type="text/javascript" src="jquery-1.4.2.min.js"> </script>
        </head>
    
    <body>
    
        <table>
            <tbody>
                <tr>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                </tr>
                <tr>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                </tr>
                <tr>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                </tr>
                <tr>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                </tr>
                <tr>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                </tr>
                <tr>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                </tr>
                <tr>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                </tr>
                <tr>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                    <td>&nb sp;</td>
                </tr>
            </tbody>
        <table>
        
    
    </body>
    </html>
    
    
    
    <script type="text/javascript">
    // <![CDATA[
    
        function foobar(el) {
            /* event delegation */
            
            var table = $(el);
            var tbody = $('tbody', table);
            
            table.bind('mouseover', function(event) {
                var el = event.target;
                       
                if (el.nodeName === 'TD') {
    
                    var td = $(el);
                    var tr = td.parent();               
                    col = tr.children().index(td) + 1;
                    
                    $(['td:nth-child(', col, ')'].join(''), tbody).addClass('tdhovered');
                    $(tr, tbody).addClass('trhovered');
                    
                }
            });
    
            table.bind('mouseout', function() {
                $('td', table).removeClass('tdhovered');
                $('tr', table).removeClass('trhovered');
            });
        };
        
        $(document).ready(function() {
            foobar('table');
        });
    
    // ]]>
    </script>
    questo utilizza l'event delegation sulla tabella e sfrutta il selettore nth-child per individuare la colonna
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.