bleicher: funktion wird doppelt aufgerufen

Grüße,
habe eine kleine JS Funktion gebastelt:

das Problem: wird Sie mit "null aufgerufen, ruft die sich(?) 2 mal auf - einmal richtig mit "Null" und einmal mit dem "alten" objectwert.

Die fnkt sollte beim click auf ein span mit img drin, das bild durch die liste ersetzen, beim click auf "esc" das bild wieder einfügen.

  
function imagetag(obj){  
  
	if(a_obj!=null){  
		a_obj.innerHTML=zw;  
	}  
  
	if(obj!=null){  
	a_obj=obj;  
	zw=obj.innerHTML;  
	var img_src=obj.firstChild.name;  
  
	var ni='<ul>';  
	ni+='<li><a href="#" onClick="return editortags(\'[img\]'+img_src+' \')">IMG</a><li>';  
	ni+='<li><a href="#" onClick="return editortags(\'[tmb]'+img_src+' \')">TMB</a><li>';  
	ni+='<li><a href="#" onClick="imagetag(null)">ESC</a><li>';  
	ni+='<li><a href="#" onClick="">DEL</a><li></ul>';  
  
	obj.innerHTML=ni;  
	}  
return false;  
}  

  
<span onClick="imagetag(this)" class="imgt"><img src="../pics/small/0001.jpg" name="0001.jpg"></span>  

führt dazu, dass das bild erst wiedereingefügt wird, und dann erneut durch die liste ersetzt wird.
leider kann ich den Fehler nicht finden ;(
MFG
bleicher

  1. Hallo,

      
    
    > 		a_obj.innerHTML=zw;  
    
    

    na huch ... wo kommt denn das "zw" her?!

    MfG. Christoph Ludwig

    --
    Wo die Sprache aufhört, fängt die Musik an...
    Selfcode:  sh:) fo:) ch:° rl:( br:^ n4:} ie:{ mo:} va:) js:| de:] zu:) fl:( ss:| ls:~
    Go to this
    1. Hallo,

      »» a_obj.innerHTML=zw;

      
      >   
      > na huch ... wo kommt denn das "zw" her?!  
      >   
      >   
      > MfG. Christoph Ludwig  
        
      wurde außerhalb der function deklariert(der wert sollte so zwischen den aufrufen erhalten bleiben) - mit null als startwert, ebenso obj und a\_obj
      
  2. Hi,

    das Problem: wird Sie mit "null aufgerufen, ruft die sich(?) 2 mal auf - einmal richtig mit "Null" und einmal mit dem "alten" objectwert.

    Abgesehen davon, dass ich die Beschreibung nicht wirklich nachvollziehen kann (hast du mal eine Testseite?) -

    Die fnkt sollte beim click auf ein span mit img drin, das bild durch die liste ersetzen,

    • hat eine Liste nichts im inline-Element Span verloren [1].

    Falsches HTML bleibt falsches HTML, auch wenn du es dynamisch per JavaScript erzeugst.

    [1] Dass die Ursache deines Problems darin liegt, muss zwar nicht unbedingt sein, kann aber durchaus. Schliesslich interpretiert der Browser deinen Versuch, fehlerhaftes HTML zu erzeugen, wohl irgendwie - baut daraus aber ggf. einen anderen DOM-Baum, als du dir vorstellst.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Grüße,

      • hat eine Liste nichts im inline-Element Span verloren [1].

      Falsches HTML bleibt falsches HTML, auch wenn du es dynamisch per JavaScript erzeugst.

      ist span mit display:block immer noch inline?
      MFG
      bleicher

      1. Mahlzeit bleicher,

        ist span mit display:block immer noch inline?

        Ja. Ein Inline-Element ist ein Inline-Element ist ein Inline-Element. Ob Du mit CSS etwas am Aussehen oder Verhalten änderst, tut in bezug auf die Zulässigkeit (http://de.selfhtml.org/html/referenz/elemente.htm#block_elemente@title=Block-Elemente in <http://de.selfhtml.org/html/referenz/elemente.htm#span@title=<span>> = böse) nichts zur Sache ...

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      2. Hi,

        • hat eine Liste nichts im inline-Element Span verloren [1].

        Falsches HTML bleibt falsches HTML, auch wenn du es dynamisch per JavaScript erzeugst.

        ist span mit display:block immer noch inline?

        Ist ein Mann eine Frau, wenn er sich ein Kleid anzieht?

        MfG ChrisB

        --
        „This is the author's opinion, not necessarily that of Starbucks.“
      3. @@bleicher:

        ist span mit display:block immer noch inline?

        http://forum.de.selfhtml.org/archiv/2006/6/t132132/#m854853, http://forum.de.selfhtml.org/archiv/2007/4/t149631/#m972077 ff.

        Live long and prosper,
        Gunnar

        --
        Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit. (Jean-Jacques Rousseau)