如何从函数外部访问局部变量?

时间:2014-10-09 14:51:59

标签: javascript jquery

如何从函数外部访问局部变量?

按下后,它应提醒distance_bottom值,但它不起作用,我该如何使其正常工作?

http://jsfiddle.net/dyjb8r9w/11/

<script>
$(window).load(function(){
(function() {    
    var mY, distance_bottom,
        $distance_bottom = $('#distance_bottom span'),
        $element_bottom  = $('#element_bottom');

    function calculatedistance_bottom(elem , mouseY) {
        return Math.floor(Math.sqrt(Math.pow(mouseY - (elem.offset().top+(elem.height()/2)), 2)));
    }

    $(document).mousemove(function(e) {        
        mY = e.pageY;
        distance_bottom = calculatedistance_bottom($element_bottom , mY);
        $distance_bottom.text(distance_bottom);
    });
})();
});
</script>





<script>
function reply_click()
{    
    alert(distance_bottom);
}
</script> 

2 个答案:

答案 0 :(得分:2)

您可以通过在window.前添加前缀并将其从顶部的变量声明中删除来使其全局化。下面这行就是诀窍

window.distance_bottom = calculatedistance_bottom($element_bottom , mY);

DEMO

答案 1 :(得分:0)

我看到它的方式你有两个选择,第一个意味着改变功能而另一个意味着没有:

1-通过不在var

函数内声明它来使全局变量成为一个全局变量

2-使用javascript / jQuery访问HTML上的值。

Ex:alert($('#distance_bottom span')。html());

(为简单起见,jQuery中的示例)