2010-11-11 16 views
6

मैं HTML में एक div तत्व की ऊंचाई की पहचान करने की कोशिश कर रहा हूं, लेकिन मैं फ़ंक्शन के बाहर के मान तक पहुंचने में सक्षम नहीं हूं। यह jQuery है:jQuery फ़ंक्शन के बाहर परिवर्तनीय दायरा

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); 

पहले चेतावनी समारोह काम करता है, लेकिन दूसरे फेंकता है और $height के रूप में अपरिभाषित के साथ त्रुटि। मैं $height के मान को कैसे बनाए रख सकता हूं?

उत्तर

13

तुम बस var इस तरह निकाल सकते हैं:

$height = $tmp_cont.height(); 

आप एक वैश्विक चर चाहते हैं, var बंद छोड़ देते हैं, या अधिक स्पष्ट रूप से:

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

या आप अभी भी यह स्थानीय चाहते हैं , बस इसे उच्च घोषित करें, इस तरह:

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

वाह .. यह धन्यवाद काम करता है, क्या आप pl आसानी से मुझे var का उपयोग करने और इसका उपयोग नहीं करने का अंतर बताएं? –

+0

@ atif089 - यहां बहुत आसान है ... बिना 'var' के आपको एक स्थानीय एक के बजाय वैश्विक स्कोर ('विंडो') में घोषित एक चर मिलता है :) –

+1

आपको हमेशा वैश्विक उपयोग में घोषित करने के बावजूद, var का उपयोग करना चाहिए । अन्यथा (आकस्मिक-ग्लोबल्स के साथ) आप IE में अजीब त्रुटियां प्राप्त कर सकते हैं जब आप पृष्ठ पर किसी तत्व के समान नाम वाले चर का उपयोग करने का प्रयास करते हैं। – bobince

संबंधित मुद्दे