javascript tr

15 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Zdravim, potreboval bych do promenne nacist vsechny tr (radky tabulky) na cele strance.. muj zamer je takovy ze bych potreboval nejaky univerzalni script ktery mi na strance udela u vsech <tr> takovou upravu, ze po najeti mysi na radek se radek zbarvi a po odjeti mysi zase vrati na puvodni barvu.. dekuji za rady..
  2. Tak to je špatný přístup. Funkce onMouseOver() a onMouseOut() ti nestačí? Pokud by to měly být odkazy, tak to lze i bez Javascriptu: http://www.wellstyled.com/css-nopreload-rollovers.html Pokud bys trval na původním návrhu, tak ti pomůže funkce getElementsByTagName(): http://www.ondrejbrandejs.cz/javascript/?x=getelementsbytagname
  3. Bohatě ti postačí funkce getElementsByTagName(), každému elementu potom přidáš vhodnou funkci na událost onmouse..(), jak už napsal Kit. např: elements = document.getElementsByTagName("tr"); if(elements) { for (var i = 0; i < elements.length; i ++) { //uprava elements[i] elements[i].onmouseover = function() {obarvi()}; elements[i].onmouseout = function() {zrus()}; } } ___ ehm.. tak když jsem si zpětně přečetl i text u odkazů, které Kit vložil, tak je můj příspěvek asi zbytečný.. přesto je mi líto ho smazat :)
  4. Freeze: Byla by ho škoda.
  5. dekuji vsem snad z toho neco dam dohromady, potrebuji to protoze to potrebuji dosadit jiz do hotove aplikace a doplnovat ke kazdemu tagu tr onmouseover a onmouseout by bylo hrozne prace... takhle dam do indexu nejakej universalni script ktery mi promeni vsechny radky tabulky tak jak potrebuji..
  6. tak prece jenom mam problem.. zkousim to a nejde mi to.. nasel jsem asi chybu ale nevim proc to tak je.. tohle: elements = document.getElementsByTagName('tr'); document.write(elements.length); mi vypise 0, pritom tam tagy tr urcite jsou a nekolik...
  7. Musíš si dát pozor, že DOM funkce (jak getElementsByTagName, tak i např. getElementById a další..), které pracují s obsahem, jsou korektně funkční až ve chvíli, kdy je stránka celá načtena -- takže tenhle skript pro přidání onmouse.. událostí je potřeba volat až poté, po načtení stránky. Nejjednodušším řešením je vytvořit např. nějakou funkci init(), kterou zavoláš při onload, např: <body onload="init()">..</body>.
  8. moc cena rada. dekuji.. jdu na to a pak se podelim.. ;-)
  9. tak sem to zmakl... toto upravi vsechny radky tabulky s ideckem table-1 (<table id="table-1">): <script type="text/javascript"> function ini() { elements = document.getElementsByTagName('table'); if(elements) { for (var i = 0; i < elements.length; i ++) { if(elements[i].id == 'table-1') { elem = elements[i].getElementsByTagName('tr'); if(elem) { for (var x = 1; x < elem.length; x ++) { elem[x].setAttribute('onmouseover', "this.style.background = 'lightblue'"); elem[x].setAttribute('onmouseout', "this.style.background = 'white'"); } } } } } } </script> a toto upravi vsechny radky ve vsech tabulkach na strance: <script type="text/javascript"> function ini() { elem = document.getElementsByTagName('tr'); if(elem) { for (var x = 1; x < elem.length; x ++) { elem[x].setAttribute('onmouseover', "this.style.background = 'lightblue'"); elem[x].setAttribute('onmouseout', "this.style.background = 'white'"); } } } </script> vsem dekuji za pomoc a nezapomente na to co psal Freeze celou funkci ini() musite zavolat az po nacteni cele stranky cili nejlepe <body onload="ini();"> dobrou noc...
  10. Jen takovou třešničku. Kdyby si to chtěl někdo vylepšit :) Inicializaci lze provést i neinvazně. Pak není potřeba zápisu <body onload="init()"> window.onload = function () { if (!document.getElementsByTagName) { return false; } // zde uvedeny kod z funkce ini() }
  11. zdravicko, jak sme tady resili tu funkci, ted jsem zjistil ze nefunguje v IE 8. netusite proc ? zde prikladam konkretni kod: <script type="text/javascript"> function ini() { elements = document.getElementsByTagName('table'); if(elements) { for (var i = 0; i < elements.length; i ++) { if(elements[i].id == 'table-1') { elem = elements[i].getElementsByTagName('tr'); if(elem) { for (var x = 1; x < elem.length; x ++) { //uprava elements[x] if(elem[x].className == 'odd') { elem[x].setAttribute('onmouseover', "this.style.background = 'lightblue'"); elem[x].setAttribute('onmouseout', "this.style.background = 'white'"); } else { elem[x].setAttribute('onmouseover', "this.style.background = 'lightblue'"); elem[x].setAttribute('onmouseout', "this.style.background = '#eee'"); } } } } } } } </script>
  12. elem[x].setAttribute('onmouseover', "this.style.background = 'lightblue'"); Tento zápis není zrovna šťastný. Pro definování události je lepší to inicializovat přímo a ne přes atribut. Navíc v CSS se barva pozadí definuje přes background-color. Takže: elem[x].onmouseover = function () { this.style.backgroundColor = 'lightblue'; } Když něco nefunguje jak má, tak většinou používám "debugovací echo". V javascriptu je to alert('Prošlo'); Pokud se zobrazí, tak tam prošel, pokud ne, tak se to někde zaseklo. Stejně tak tímto můžeš zobrazit obsah proměnné.
  13. tak jsem to opravil, ale nefunguje to.. v mozile a opere jo ale IE 8 nic..
  14. <HTML>Zkus se mrknout na metodu captureEvents. IE8 z nějakého důvodu odchytávání událostí nemá normálně povoleno, musí se mu to ručně vysvětlit: if (window.captureEvents) { // test, zná-li prohlížeč tu funkci, pokud ano, zapneme odchyt událostí window.captureEvents(Event.ONMOUSEOVER); window.captureEvents(Event.ONMOUSEOUT); } Třeba to zabere. Nebo to zabere s document místo window. Nebo to nezabere vůbec.</HTML>
  15. tak bohuzel ani toto nefunguje... napada nekoho jeste neco ? ja hledam na netu jak divej, ale nic..

← Zpět na všechna témata