如何从函数外部访问局部变量?
按下后,它应提醒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>
答案 0 :(得分:2)
您可以通过在window.
前添加前缀并将其从顶部的变量声明中删除来使其全局化。下面这行就是诀窍
window.distance_bottom = calculatedistance_bottom($element_bottom , mY);
答案 1 :(得分:0)
我看到它的方式你有两个选择,第一个意味着改变功能而另一个意味着没有:
1-通过不在var
函数内声明它来使全局变量成为一个全局变量2-使用javascript / jQuery访问HTML上的值。
Ex:alert($('#distance_bottom span')。html());
(为简单起见,jQuery中的示例)