MyBB.de Forum

Normale Version: JS - Problem mit Bildwechsel auf "onclick"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

für das Plugin ShowOnlineToday habe ich das zugehörige Template so angepasst, dass es eingeklappt ist und mittels "onklick()" vom User geöffnet werden kann. Das funktioniert mit dem u.a. Code, indem man auf "+/-" klickt.
Code:
<script type='text/javascript'>
function showonlinetoday(){
if (document.getElementById('onlineToday').style.display == 'none')
{
    if(navigator.appName == 'Microsoft Internet Explorer')
        {
        document.getElementById('onlineToday').style.display='block';
        }
        else
        {
        document.getElementById('onlineToday').style.display='table-row';
        }
    }
    else
        {
        document.getElementById('onlineToday').style.display = 'none';
        }
    }
</script>
<tr>
    <td class="tcat">
        <span style="float:right;">
            <a style='cursor:pointer'onclick='showonlinetoday()'>
                <span style="font-size:1.2em;font-weight:bold;">+/-</span>
            </a>
        </span>
        <strong>{$lang->whos_online_today}</strong>
    </td>
</tr>
<tr id='onlineToday' style='display:none;'>
    <td class="trow1">
    <span class="smalltext">{$lang->online_note_today}<br />{$onlinemembers}</span>
    </td>
</tr>
Nun wollte statt dem "+/-" mittels innerHTML einen wechselnden Text einfügen. Das funktioniert leider im IE nicht, weil dieser innerHTML in Tabellen nur lesen aber nicht schreiben kann.
Also habe ich mir überlegt, statt dessen ein Bild einzufügen und dieses bei "onklick()" jeweils zu wechseln.
Den entsprechenden Code findet Ihr nachfolgend.
Code:
<script type='text/javascript'>
function showonlinetoday(){
if (document.getElementById('onlineToday').style.display == 'none')
{
    if(navigator.appName == 'Microsoft Internet Explorer')
        {
        document.getElementById('onlineToday').style.display='block';
        }
        else
        {
        document.getElementById('onlineToday').style.display='table-row';
        }
}
else
    {
        document.getElementById('onlineToday').style.display = 'none';
    }
};
if (document.getElementById('test01').src == 'images/collapse_collapsed.gif')
{
    document.getElementById('test01').src='images/collapse.gif'
}
else
{
    tdocument.getElementById('test01').src='images/collapse_collapsed.gif'
}
</script>
<tr>
    <td class="tcat">
        <span style="float:right;">
            <img id='test01' src="images/collapse_collapsed.gif" style='cursor:pointer'
                onclick="showonlinetoday()" />
        </span>
        <strong>{$lang->whos_online_today}</strong>
    </td>
</tr>
<tr id='onlineToday' style='display:none;'>
    <td class="trow1">
    <span class="smalltext">{$lang->online_note_today}<br />{$onlinemembers}</span>
    </td>
</tr>
Leider funktioniert der Bildwechsel nicht. Weder im FF noch im IE. Sad
Ich habe es auch schon mit
Code:
this.src
statt mit
Code:
document.getElementById('test01').src
probiert. Ebenfalls ohne Erfolg.

Würde mich über einen Tipp freuen, was ich da falsch mache.

Dankeschön! Smile
Warum gibst du der Spalte nicht die ID? Dann müsste es doch funktionieren.
Du meinst so?
Code:
<td id="test01" class="tcat">

Leider funktioniert das auch nicht.


Edit:
habe es hin bekommen. Danke.