Hallo, Gast! (Registrieren)

Wir wünschen allen Besuchern frohe Ostern!

Letzte Ankündigung: MyBB 1.8.37 veröffentlicht (04.11.23)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
JS - Problem mit Bildwechsel auf "onclick"
#1
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
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren
#2
Warum gibst du der Spalte nicht die ID? Dann müsste es doch funktionieren.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
Du meinst so?
Code:
<td id="test01" class="tcat">

Leider funktioniert das auch nicht.


Edit:
habe es hin bekommen. Danke.
viele Grüße
Jockl
übersetzte und eigene Plugins
Zitieren