2010-11-11 18 views
6

Ich versuche, die Höhe eines div-Elements in HTML zu identifizieren, aber ich kann nicht auf den Wert außerhalb der Funktion zugreifen. Dies ist die jQuery:Variabler Bereich außerhalb der jQuery-Funktion

jQuery.noConflict(); 

(function($) { 
    $(function() { 
     $tmp_cont = $('<div></div>'); 
     $tmp_cont.html($content); 
     $tmp_cont.hide(); 
     $('body').append($tmp_cont); 

     var $height = $tmp_cont.height(); 

     alert ($height); 
    }); 
})(jQuery); 

alert ($height); 

Die erste Alarm-Funktion funktioniert, aber die zweiten Würfe und Fehler mit $height als undefiniert. Wie kann ich den Wert von $height behalten?

Antwort

13

Sie können nur die var wie folgt entfernen:

$height = $tmp_cont.height(); 

Wenn Sie eine globale Variable wollen, lassen Sie die var aus oder expliziter:

window.$height = $tmp_cont.height(); 

Oder wenn Sie es noch lokale wollen Erklären Sie es einfach höher, wie folgt:

jQuery.noConflict(); 
var $height; 
(function($) { 
    $(function() { 
     $tmp_cont = $('<div></div>'); 
     $tmp_cont.html($content); 
     $tmp_cont.hide(); 
     $('body').append($tmp_cont); 

     $height = $tmp_cont.height(); 
     alert ($height); 
    }); 
})(jQuery); 
alert ($height); 
+0

wow .. das funktioniert danke, können Sie pl erklären Sie mir einfach den Unterschied der Verwendung von Var und nicht verwenden? –

+0

@ atif089 - Ziemlich einfach hier ... ohne 'var' erhalten Sie eine Variable, die in der globalen Bewertung (' window') anstelle einer lokalen definiert wird :) –

+1

Sie sollten immer var verwenden, auch wenn Sie es im globalen Gültigkeitsbereich deklarieren . Andernfalls (mit accident-globals) können Sie seltsame Fehler im IE bekommen, wenn Sie versuchen, eine Variable mit demselben Namen wie ein Element auf der Seite zu verwenden. – bobince

Verwandte Themen