2012-04-07 4 views
0

Ich habe folgende Click-Ereignis

$(".element").click(function() { 
    var idNum = $(this).getID; 
    $('#new-'+idNum).fadeIn();  
}); 

und die folgende Funktion:

function getID() { 
    var elID = $(this).parent().attr('id'); 
    return elID; 
} 

Was ich will, ist in der Lage sein, auf .element zu klicken, erhält es ID der Eltern, und speichern Sie dann die ID in die Variable idNum. Aber das scheint nicht zu funktionieren. Was mache ich falsch?

+1

'$ (this) .getID()' um die Funktion aufzurufen. Im Augenblick weisen Sie der Funktion 'idNum' einen Verweis auf die Funktion zu, nicht das Ergebnis eines Funktionsaufrufs. –

Antwort

3

Anstatt diesen Code in einer anderen Funktion zu tun, warum tun Sie es nicht einfach in der gleichen?

$(".element").click(function() { 
    var idNum = $(this).parent().attr('id'); 
    $('#new-'+idNum).fadeIn(); 

    getID(idNum); 
}); 

function getID(idNum) { 
    var newObject = $(body).find(idNum); 
    //Do stuff with newObject 
} 

Da Sie nicht nativ $ (this) passieren kann (es ist ein Objekt in jQuery gebaut), könnten Sie stattdessen das DOM für die Existenz einer Variablen suchen, die Sie (wie der obige Code der Fall ist) übergeben.

+0

verwenden getID ist eine größere Funktion, die ich nur für diese Frage vereinfacht habe. Tut mir leid, das hätte ich mir merken sollen. – Sam

+0

Meine geänderte Antwort sollte widerspiegeln, was Sie tun möchten. – cereallarceny

+0

Danke, aber gibt es eine Möglichkeit, $ (this) in die Funktion selbst zu übergeben, eine Verarbeitung durchzuführen und dann die Rückgabe in einer Variablen innerhalb der Klickfunktion zu speichern? Ich weiß, dass das, was du vorschlägst, funktionieren wird, ich würde einfach gerne wissen, wie das für zukünftige Referenzen funktioniert. Vielen Dank. – Sam

1

Warum brauchen Sie überhaupt eine Zusatzfunktion? Just do:

$(".element").click(function() { 
    var idNum = $(this).parent().attr('id'); 
    $('#new-'+idNum).fadeIn();  
}); 
+0

Einverstanden, mach das. – ryanve

+0

Ich würde lieber '.prop ('id')' – ThiefMaster