Ergebnis 1 bis 10 von 10
  1. #1
    madam'i'madam ist offline Grünschnabel
    registriert
    01-06-2010
    Beiträge
    5

    2 Scripts blockieren sich, bitte um Rat!

    Hallo an alle!

    Ich habe folgende 2 Scripts eingebunden:

    <script>
    var e = '.png';

    onload = function(){ var T, M = [],
    S = function (s, ss){ for ( var p in s = s.childNodes )
    if( s[p].className == 'o' ) s[p].src = s[p][ss] }

    for( var p in T = document.getElementsByTagName('*') )
    if( T[p].className == 'm' ) M.push( T[p] )

    for( var p in T = document.images )
    if( T[p].className == 'o' ) { T[p].n = T[p].src
    T[p].o = T[p].src.replace(e, '_o' + e) }

    for( var p in M )
    { M[p].act = 1;

    M[p].onmouseover = function(){ if( this.act ) S( this, 'o') }

    M[p].onmouseout = function(){ if( this.act ) S( this, 'n') }

    M[p].onclick = function (){

    if( this.act ) { for( var p in M )
    if ( !M[p].act ) { M[p].act = 1
    S( M[p], 'n') }
    this.act = 0
    if( this.blur ) this.blur() } }




    } }
    </script>
    ////////////////////////////////////////////////////////
    <script>
    function toggleswitch(div)
    {
    var option=['profil1','profil2','profil3','profil4','profil5'];
    for(var i=0; i<option.length; i++)
    { obj=document.getElementById(option[i]);
    obj.style.display=(option[i]==div) && !(obj.style.display=="block")? "block" : "none"; }
    }
    </script>

    in der php-datei steht nun folgender code:

    <a class="m" onclick="toggleswitch('profil1')" href="#">
    <img class=o src=img/linksite_left_img/start.png>
    </a>
    beide scripts/effekte funktionieren gut, ohne dass der html code geändert wird, sobald ich eins von beiden nicht einbinde.
    zusammen wird aber nur der mouseover effekt wirksam.

    Ich vermute es liegt an "document.getElementsBy...", die sich gegenseitig überschreiben. Leider weiß ich nicht, wie ich beides vereinen kann.

    Kann mir jemand helfen?

    Vielen Dank im Vorraus.

    MFG
    madam'I'madam

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.760

    AW: 2 Scripts blockieren sich, bitte um Rat!

    Nö - daran liegt's nicht. Es liegt daran, dass du den onclick-Handler im oberen Code überschreibst. Wenn du das verhindern musst du mit .addEventHandler (w3c) bzw. .attachEvent (IE) arbeiten.

    Aber mal Hand auf's Herz: findest du diesen Code wirklich gut geschrieben? Alleine schon die Funktions-/Parameter-/Variablennamen... und den <script> fehlt das type-Attribut.

  3. #3
    madam'i'madam ist offline Grünschnabel
    registriert
    01-06-2010
    Beiträge
    5

    AW: 2 Scripts blockieren sich, bitte um Rat!

    Hi kkapsner!

    Vielen Dank für die schnelle Antwort.
    Sicherlich gibt es an dem code noch sehr viel zu verbessern. ich beschäftige mich erst seit ca. 1 Woche mit javascript.
    Das ist auch der Grund, warum ich mit ".addEventHandler" nicht viel anfangen kann, bzw. nicht weiß, wie der code danach damit aussehen soll.
    Für ein konkretes Beispiel (evtl auch für einen script - "type"^^) wäre ich daher sehr dankbar. = )

    Viele Grüße

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.760

  5. #5
    madam'i'madam ist offline Grünschnabel
    registriert
    01-06-2010
    Beiträge
    5

    AW: 2 Scripts blockieren sich, bitte um Rat!

    Danke!^^

  6. #6
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: 2 Scripts blockieren sich, bitte um Rat!

    Zitat Zitat von madam'i'madam Beitrag anzeigen
    Sicherlich gibt es an dem code noch sehr viel zu verbessern. ich beschäftige mich erst seit ca. 1 Woche mit javascript.
    Das hindert dich daran den Funktionen sinnvolle Namen zu geben?

  7. #7
    madam'i'madam ist offline Grünschnabel
    registriert
    01-06-2010
    Beiträge
    5

    Smile AW: 2 Scripts blockieren sich, bitte um Rat!

    Hallo nochmal.
    Die Namen sind so gewählt worden, weil es am schnellsten ging.
    Hier eine überarbeitete Version, ich habe eine Lösung gefunden, wie man beide Funktionen vereinen kann, ohne w3c oder addeventhandler zu benutzen.
    Falls es jemanden interessiert, der ein ähnliches Konzept einbauen möchte:

    <script type="text/javascript">
    var e = '.png',
    j = 0;


    onload = function()
    {
    var T, M = [],
    S = function (s, ss){ for ( var p in s = s.childNodes )
    if( s[p].className == 'o' ) s[p].src = s[p][ss] }




    for( var p in T = document.getElementsByTagName('*') )
    if( T[p].className == 'm' ) { M.push( T[p] )
    }



    for( var p in T = document.images )
    if( T[p].className == 'o' ) { T[p].n = T[p].src
    T[p].o = T[p].src.replace(e, '_o' + e)
    }



    for( var p in M )
    { M[p].act = 1;

    M[p].onmouseover = function(){ if( this.act ) S( this, 'o') }

    M[p].onmouseout = function(){ if( this.act ) S( this, 'n') }

    M[p].onclick = function (){

    if( this.act ) { for( var p in M )
    if ( !M[p].act ) { M[p].act = 1
    S( M[p], 'n') }
    this.act = 0
    if( this.blur ) this.blur() }

    if( this.name == 'eins' ) { j = 1; }
    if( this.name == 'zwei' ) { j = 2; }
    if( this.name == 'drei' ) { j = 3; }
    if( this.name == 'vier' ) { j = 4; }


    var option=['1','2','3','4'];

    for(var i=0; i<option.length; i++)
    {
    obj=document.getElementById(option[i]);
    obj.style.display=(option[i]==j) && !(obj.style.display=="block")? "block" : "none";
    }
    }
    }
    }
    </script>

    In der HTML - Datei:

    <a class="m" name="eins" href="#">
    <img class=o src=bilder/start.png>
    </a>
    <a class="m" name="zwei" href="#" >
    <img class=o src=bilder/bild2.png>
    </a>
    ...usw

    Danach div-boxen mit:
    <div id="1" class="cont">
    Inhalt
    </div>
    <div id="2" class="contentx">
    Inhalt
    </div>
    <div id="3" class="contentx">
    Inhalt
    </div>
    ...usw

    In der CSS-Datei:

    div.cont
    {
    display:none;
    background:...;
    usw
    }

    div.contentx
    {
    display:none;
    ...usw
    }

    Für Kritik bin ich gerne zu haben, ansonsten viel Spaß!

  8. #8
    madam'i'madam ist offline Grünschnabel
    registriert
    01-06-2010
    Beiträge
    5

    AW: 2 Scripts blockieren sich, bitte um Rat!

    Entschuldigung:

    In der CSS muss es heißen:

    "
    div.cont
    {
    display:block;
    }
    ...
    "
    (sonst würde eine zweite "contentx" keinen sinn machen)

    Außerdem müssen sich in dem ordner "bilder" jeweils ein bild mit dem richtigen namen (zB "start.png") und ein bild mit angefügtem anhängsel (zB "start_o.png") befinden, damit diese beim mouseover und onclick ausgetauscht werden können.

    MfG

  9. #9
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: 2 Scripts blockieren sich, bitte um Rat!

    Ein obfuscator könnte es nicht besser.

  10. #10
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.760

    AW: 2 Scripts blockieren sich, bitte um Rat!

    ID's dürfen nicht mit Zahlen beginnen.
    Und wirklich toll ist das Prinzip nicht, da es extrem unflexibel ist, alle Funktionen in eine zu packen.

    PS: ich geb' dem Schlauen wirklich recht!

Ähnliche Themen

  1. Zwei Scripts in einer Seite
    Von Back im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 25-02-2009, 13:47
  2. Antworten: 4
    Letzter Beitrag: 11-08-2008, 17:11
  3. Konflikt mit 2 Scripts! Dringend
    Von romu im Forum JavaScript
    Antworten: 13
    Letzter Beitrag: 27-05-2008, 16:48
  4. 2 Java Scripts blockieren sich
    Von Darezettl im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 08-01-2006, 17:50
  5. 2 onload scripts
    Von anand im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 14-02-2002, 12:04

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •