变量范围在jQuery函数之外

时间:2010-11-11 11:21:56

标签: javascript jquery

我试图在HTML中识别div元素的高度,但是我无法访问函数外部的值。这是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的价值?

1 个答案:

答案 0 :(得分:17)

您可以像这样删除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);