Avatar billede loproc Praktikant
07. august 2001 - 00:29 Der er 4 kommentarer og
2 løsninger

Problem med table hover effekt

Jeg har brugt følgende:

<script language=\"JavaScript\">
  function co(element,mode) {
    s = \'#5555ff\'
    n = \'#ffffff\'
    o = \'#B7C6D6\'
    if (mode==\"in\") {
      if (element.style.background == s){ colorval = s } else {
      cursortype = \'\'
      colorval = o
    }} else if (mode==\"out\") {
      if (element.style.background == s){ colorval = s } else {
      cursortype = \'\'
      colorval = n
    }} else if (mode==\"sel\") {
      if (element.style.background == s){ colorval = n } else {
      cursortype = \'\'
      colorval = s
    }}
  element.style.background=colorval;
  element.style.cursor=cursortype;
}
</script>

til at lave en hover effekt på tablerow\'s og når man klikker bliver row\'en \"selected\" (en tredie farve). Det er jo godt nok, men alle de andre tablerows skal unselectes, så kun en er selected af gangen. Hvordan?
Avatar billede loproc Praktikant
07. august 2001 - 00:31 #1
en lille tilføjelse: Kan jeg lave så tekst ikke kan selectes?
Avatar billede loproc Praktikant
07. august 2001 - 00:35 #2
Det skal lige siges at jeg er newbie inden for javascripting
Avatar billede jumper Nybegynder
07. august 2001 - 00:47 #3
<script language=\"JavaScript\">
oldElement = null;
document.onselectstart=function(){return false} // Ingen text selection
function co(element,mode){
    var s, n, o, colorval, cursortype, oldB;
    s = \'#5555ff\';
    n = \'#ffffff\';
    o = \'#B7C6D6\';
    oldB = element.style.backgroundColor==s
    switch( mode ){
        case \"in\":
            colorval = oldB ? s : o;
            cursortype = \'\';
        break;
        case \"out\":
            colorval = oldB ? s : n;
            cursortype = \'\';
        break;
        case \"sel\";
            colorval = oldB ? n : s;
            cursortype = \'\';
        break;
    }
    element.style.backgroundColor = colorval;
    element.style.cursor = cursortype;
    if (oldElement) oldElement.style.backgroundColor=oldElement.style.cursor=\"\";
    oldElement=element;
}
</script>
Avatar billede plexx Nybegynder
07. august 2001 - 00:48 #4
Her kan du se hvordan du laver det:
http://www.builder.dk/artikler/article.asp?AID=71

-Plexx
Avatar billede jakoba Nybegynder
07. august 2001 - 01:51 #5
Nedenfor går jeg ud fra der er en række i en tabel der bliver selectet. Hvis det er forkert er nedenstående noget gylle.

<script language=\"JavaScript\">
// IE only

function unsel( element, farve ) [    // element er et <tr element
  var tabElm = element.parentElement.parentElement;
  var tb = tabElm.tBodies;
  for (var i=0; i<tb.length; i++ ) {
    var tbr = tb[i].rows;
    for (var j=0; j<tbr.length; j++ ) {
      if ( tbr[j] != element ) tbr[j].style.backgroundColor = farve;
    }
  }
};

  function co(element,mode) {
    s = \'#5555ff\'
    n = \'#ffffff\'
    o = \'#B7C6D6\'
    if (mode==\"in\") {
      if (element.style.background == s){ colorval = s } else {
      cursortype = \'\'
      colorval = o
    }} else if (mode==\"out\") {
      if (element.style.background == s){ colorval = s } else {
      cursortype = \'\'
      colorval = n
    }} else if (mode==\"sel\") {
      if (element.style.background == s){ colorval = n } else {
      cursortype = \'\'
      colorval = s
      unsel( element, n ); // unselect all other rows
    }}
  element.style.background=colorval;
  element.style.cursor=cursortype;
}

</script>

mvh JakobA
Avatar billede jakoba Nybegynder
07. august 2001 - 09:12 #6
Ups. forkert slags startparentes ( \'[\' skal være \'{\' ):
function unsel( element, farve ) [    // element er et <tr element
skal være:
function unsel( element, farve ) {    // element er et <tr element
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester