Core: this.key == undefined ?!

$('.item').children().each(function(){$(this).mouseenter(function(){  
	$(this).append( this.option = $(option).clone());  
	$(this.option).hide().fadeIn('fast');  
	this.option.key = "test";  
	  
	$(this.option).click(function(){  
		  
		console.log(this.key);  
		  
	});  
});

Hallo Leute in der oben beschrieben Funktion wird in eine "H3" oder ein "P"
ein Span (Variable: option) eingefügt,.. danach bekommt dieses Span (this.option) noch eine Variable übergeben, sowie einen Click Eventhandler.

Das Problem ist: dass in der "Click" Funktion"this.key" nicht mehr zur Verfügung steht bzw. undefiniert ist. Unverständlich für mich zumal
ich es vier Zeilen drüber dem Objekt übergeben habe.

Hat jemand eine Idee woran es liegen könnte?

lG
Core

  1. Hallo,

    $('.item').children().each(function(){$(this).mouseenter(function(){

    $(this).append( this.option = $(option).clone());
    $(this.option).hide().fadeIn('fast');
    this.option.key = "test";

    $(this.option).click(function(){

      console.log(this.key);  
    

    });
    });

    
    >   
    
    this.option.key oder this.key?  
      
    Guck doch mal, was this ist. Vielleicht das Window-Objekt. Dann musst du u.u. this in einer Variable speichern. that = this zb..  
      
      
      
    Gruß  
      
    jobo
    
    1. Hallo,

      Guck doch mal, was this ist. Vielleicht das Window-Objekt. Dann musst du u.u. this in einer Variable speichern. that = this zb..

      s.a.

      http://forum.de.selfhtml.org/archiv/2011/2/t203423/#m1376273

      http://molily.de/js/organisation-verfuegbarkeit.html

      Gruß

      jobo

    2. Guck doch mal, was this ist. Vielleicht das Window-Objekt. Dann musst du u.u. this in einer Variable speichern. that = this zb..

      Danke für deine Antwort,
      habe ich natürlich schon gemacht,
      this - in der Click Funktion ist das Span das es auch sein sollte,..
      jedoch komischer Weise wird im Firebug:

      <span style="color: blue; margin-left: 10px; display: inline;">

      ausgegeben, in der ersten Funktion (console.log(this.option);) jeodch
      wie normal das Objekt ['span'],..

      1. Hallo,

        <span style="color: blue; margin-left: 10px; display: inline;">

        ausgegeben, in der ersten Funktion (console.log(this.option);) jeodch
        wie normal das Objekt ['span'],..

        aber du setzt doch this.option.key und nicht this.key.

        Gruß

        jobo

        1. aber du setzt doch this.option.key und nicht this.key.

          Schau dir das Beispiel bitte an,..
          this.option.key = "Test",..

          dann,..

          $(this.option).click(function(){
          und hier ist das this = Option;
          });

          1. Hallo,

            aber du setzt doch this.option.key und nicht this.key.

            Schau dir das Beispiel bitte an,..
            this.option.key = "Test",..

            dann,..

            $(this.option).click(function(){
            und hier ist das this = Option;
            });

            Und dem Optionelement lässt sich ein key-Attribut so zuordnen? An welcher Stelle könntest du das überprüfen? Dass this da "Option" ist, wirklich? Auch wenn der Klick später ausgeführt wird? Mal dort alert(this) oder console log ausprobiert? Irgendwo scheinst du doch den Kontext zu verlassen oder du darfst eine Property (key) nicht setzen.

            Gruß

            jobo

            1. Mal dort alert(this) oder console log ausprobiert?

              Ja habe ich, natürlich und ja es ist wirklich das Span Option,..

              1. Hallo,

                Mal dort alert(this) oder console log ausprobiert?

                Ja habe ich, natürlich und ja es ist wirklich das Span Option,..

                was ist ein "Span Option"? Dann musst du dich fragen, warum der .key da nicht setzbar ist. Was passiert denn, wenn du this.style.bla abfrägst? Sind die anderen Attribute ansprechbar?

                Gruß

                jobo