Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von Oktober

SELFHTML Forumsarchiv
mehrere klassen mit javascript manipulieren

Informationsseite
  1. Seite (JAVASCRIPT) mehrere klassen mit javascript manipulieren von òle, 31. 10. 2007, 12:41
nach unten

mehrere klassen mit javascript manipulieren

Die folgende Nachricht zum Thema stammt von: òle, 31. 10. 2007, 12:41

hi, ich hab mal geschlossen mich mit Javascript zu befassen und habe folgendes konstrukt gebaut:

CSS:
.blue{ background-color:blue; }
/* zustände */
.open{height:100px;}
.closed{height:20px;}

Javascript:
function mark(cell){ cell.className="open"; }
function unmark(cell) { cell.className="closed"; }

HTML:
<div class="blue" onMouseOver="mark(this)" OnMouseOut="unmark(this)">Test</div>
<div class="blue" onMouseOver="mark(this)" onMouseOut="unmark(this)">Test2</div>
<div class="blue" onMouseOver="mark(this)" onMouseOut="unmark(this)">Test3</div>

jetzt ändert js also beim drüberrollen:

class="blue"

um, in:

class="open"

ich möchte jedoch das der aktuellen klasse, die open klasse lediglich hinzugefügt wird, also:

class="blue open"

wie geht sowas?
lg
òle

nach obennach unten

mehrere klassen mit javascript manipulieren

Die folgende Nachricht zum Thema stammt von: jonas dinkelmann, 31. 10. 2007, 13:00

Hy òle,

meinst du sowas:
cell.className = cell.className + " open"

Gruss Jonas

nach obennach unten

mehrere klassen mit javascript manipulieren

Die folgende Nachricht zum Thema stammt von: òle, 31. 10. 2007, 13:15

»» Hy òle,
»»
»» meinst du sowas:
»» cell.className = cell.className + " open"
»»
»» Gruss Jonas

Wundervoll, ich hab jetzt einfach mal naiverweise mein script so umgeschireben:

function mark(cell){ cell.className = cell.className + " open"; }
function unmark(cell){ cell.className = cell.className - " open"; }

die erste zeile funst auch super. bei der zweiten zeile ist er der meinung className sei ein integer. wenn man wieder rausfährt ändert sich also die klasse auf NaN. ich müsste also den string nach der zeichenkette " open" durchsuchen und diesen teil dann löschen... ka wie^^

nach obennach unten

mehrere klassen mit javascript manipulieren

Die folgende Nachricht zum Thema stammt von: jonas dinkelmann, 31. 10. 2007, 13:18

»» ich müsste also den string nach der zeichenkette " open" durchsuchen und diesen teil dann löschen... ka wie^^

Wie Tina schon geschrieben hat:
function unmark(cell) { cell.className=cell.className.replace(/ ?open/,' closed'); }

Gruss Jonas

nach obennach unten

mehrere klassen mit javascript manipulieren

Die folgende Nachricht zum Thema stammt von: òle, 31. 10. 2007, 14:19

»» Wie Tina schon geschrieben hat:
»» function unmark(cell) { cell.className=cell.className.replace(/ ?open/,' closed'); }

vielen dank, ich denke damit kann ich was anfangen cya :)

lg
òle

nach obennach unten

mehrere klassen mit javascript manipulieren

Die folgende Nachricht zum Thema stammt von: Steffen Bruchmann, 31. 10. 2007, 13:09

Hallo ,

»» Javascript:
»» function mark(cell){ cell.className="open"; }
»» function unmark(cell) { cell.className="closed"; }

»» [...] jetzt ändert js also beim drüberrollen:
»»
»» class="blue"
»»
»» um, in:
»»
»» class="open"
»»
»» ich möchte jedoch das der aktuellen klasse, die open klasse lediglich hinzugefügt wird, also:
»»
»» class="blue open"
»»
»» wie geht sowas?

Du willst nicht die Klasse ändern, sondern nur eine neue hinzufügen:

function mark (cell)
{
    cell.className += ' open';
}


Mit freundlichen Grüßen,
Steffen Bruchmann
--
Mein Selfcode: ie:{ fl:( br:> va:) ls:& fo:| rl:( n4:& ss:| de:> js:| ch:{ mo:} zu:}

nach obennach unten

mehrere klassen mit javascript manipulieren

Die folgende Nachricht zum Thema stammt von: Tina, 31. 10. 2007, 13:12

probier mal folgendes:

function mark(cell){ cell.className+=" open"; }
function unmark(cell) { cell.className=cell.className.replace(/ ?open/,' closed'); }

in der funktion unmark() wird dann der Teil " open" aus dem Klassennamen entfernt und durch " closed" ersetzt.

Einfacher gehts aber so:

CSS:
div { background-color:blue; height: 20px;}
.open {height: 100px;}

jetzt musst Du nämlich nur die klasse open zuweisen und wieder wegnehmen.
Davon abgesehen sollte man CSS-Klassen nicht mit "blue" benennen. Wenn nämlich mal die Farbe rot sein soll passt der Name nicht mehr. Vielmehr sollte man sich semantischen Bezeichnungen überlegen.

Gruß
Tina

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von Oktober

© 1998-2006 Seite Impressum, Software: Classic Forum