Ergebnis 1 bis 10 von 10
-
01-06-2010, 15:14 #1
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
-
01-06-2010, 15:31 #2
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.
-
01-06-2010, 21:03 #3
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
-
01-06-2010, 23:07 #4
AW: 2 Scripts blockieren sich, bitte um Rat!
-
02-06-2010, 18:10 #5
Grünschnabel
- registriert
- 01-06-2010
- Beiträge
- 5
AW: 2 Scripts blockieren sich, bitte um Rat!
Danke!^^
-
02-06-2010, 19:47 #6
Lounge-Member
- registriert
- 18-08-2004
- Beiträge
- 14.671
-
03-06-2010, 00:03 #7
Grünschnabel
- registriert
- 01-06-2010
- Beiträge
- 5
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ß!
-
03-06-2010, 00:07 #8
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
-
03-06-2010, 00:13 #9
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.
-
03-06-2010, 15:27 #10
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
-
Zwei Scripts in einer Seite
Von Back im Forum JavaScriptAntworten: 3Letzter Beitrag: 25-02-2009, 13:47 -
Fading-Effekt: wie 2 Scripts zu 1 zusammenführen?
Von juewi im Forum JavaScriptAntworten: 4Letzter Beitrag: 11-08-2008, 17:11 -
Konflikt mit 2 Scripts! Dringend
Von romu im Forum JavaScriptAntworten: 13Letzter Beitrag: 27-05-2008, 16:48 -
2 Java Scripts blockieren sich
Von Darezettl im Forum JavaScriptAntworten: 0Letzter Beitrag: 08-01-2006, 17:50 -
2 onload scripts
Von anand im Forum JavaScriptAntworten: 5Letzter Beitrag: 14-02-2002, 12:04
Lesezeichen