Jag har ett antal celler (<td>) i en tabell där vissa har vit(#FFFFFF) bakgrundsfärg och andra har en annan (inte vit) bakgrundsfärg. element.style innehåller *endast* det som satts i attributet style, inte sådant som satts i attributet bgcolor eller i globala stilmallar. Får det ändå inte att funka... :( <code>Byte av muspekare
När muspekaren förs över de vita cellerna skall länkpekaren (cell.style.cursor='hand') visas.När den förs över de andra cellerna skall en vanlig muspekare visas (cell.style.cursor='default')
Har försökt med följande:
<code>
<script language="Javascript">
<!--
function chgCursor(cell) {
if (cell.style.background == '#FFFFFF') { // Här är "felet"
cell.style.cursor='hand';
}
else {
cell.style.cursor='default';
}
}
-->
</script>
<%
' Tabellen nedan byggs upp dynamiskt mha ASP och databasvärden
' styr vilken cell som är "vit" och vilken som är en annan färg.
'
' I exemplet nedan finns endast två celler... men i verkligheten är det
' många fler celler i olika kulörer.
%>
<table>
<tr>
<td bgcolor="#FFFFFF" onMouseOver="chgCursor(this)">
</td>
<td bgcolor="#FF0000" onMouseOver="chgCursor(this)">
</td>
</tr>
</table>
</code>
Nån som har ett bra tips?Sv: Byte av muspekare
Ändrade även MS-påhittet 'hand' till standardvärdet 'pointer'.
<code>
<script language="Javascript">
<!--
function chgCursor(cell) {
if (cell.style.background == '#FFFFFF') {
cell.style.cursor='pointer';
}
else {
cell.style.cursor='default';
}
}
-->
</script>
<%
' Tabellen nedan byggs upp dynamiskt mha ASP och databasvärden
' styr vilken cell som är "vit" och vilken som är en annan färg.
'
' I exemplet nedan finns endast två celler... men i verkligheten är det
' många fler celler i olika kulörer.
%>
<table>
<tr>
<td style="background: #FFFFFF" onMouseOver="chgCursor(this)">
</td>
<td style="background: #FF0000" onMouseOver="chgCursor(this)">
</td>
</tr>
</table>
</code>Sv: Byte av muspekare
Skriver jag ut värdet <b>alert(cell.style.background);</b> så blir det undefined även efter det att jag har ändrat till ditt förslag.
<code>
function chgCursor(cell) {
// kolla värdet...
alert(cell.style.background);
if (cell.style.background == '#FFFFFF') {
cell.style.cursor='pointer';
}
else {
cell.style.cursor='default';
}
}
</code>
Har även testat i Firefox och Opera (förutom ie som är vår standardplattform) med samma resulat...Sv: Byte av muspekare
<script type="text/javascript" language="Javascript">
<!--
function chgCursor(cell) {
if (cell.style.backgroundColor.toUpperCase() == '#FFFFFF') {
cell.style.cursor='pointer';
}
else {
cell.style.cursor='default';
}
}
-->
</script>
<table border="1" width="100%">
<tr>
<td style="background: #FFFFFF" onMouseOver="chgCursor(this)">
</td>
<td style="background: #FF0000" onMouseOver="chgCursor(this)">
</td>
</tr>
</table>
</code>
Men... Det fungerar inte i Firefox, eftersom den säger att backgroundColor är rgb(255,255,255) resp rgb(255,0,0).
Här är en bättre lösning med stilmallar. Den fungerar i både IE och FF och kräver inte att JavaScript är aktiverat:
<code>
<style type="text/css">
.marked {
background: red;
cursor: default;
}
.unmarked {
background: none;
cursor: pointer;
}
</style>
<table border="1" width="100%">
<tr>
<td class="unmarked">
</td>
<td class="marked">
</td>
</tr>
</table>
</code>