试图将数字值从一个函数传递给另一个函数(将值测试为数字),但是当我从另一个函数访问所述值时,出现“ NaN”错误。从该SO What is the scope of variables in JavaScript?尝试了以下示例6(高级),但对我不起作用。
该如何解决?
wishlist
答案 0 :(得分:0)
由于它们应为数字,因此您可能应该将它们初始化为0
-undefined
的数学运算很可能是NaN
的来源。您还应该使用更简单的变量声明语法:
var institution1Left = institution2Left = institution3Left = authorityLeft = inst1Left = inst2Left = inst3Left = authLeft = 0;
答案 1 :(得分:0)
问题在您的calculateNode()函数中。更改左侧位置时未使用此指针。尝试以下更改:
function calculateNode() {
this.institution1Left = getOffset(document.getElementById('institution1')).left;
this.institution2Left = getOffset(document.getElementById('institution2')).left;
this.institution3Left = getOffset(document.getElementById('institution3')).left;
this.authorityLeft = getOffset(document.getElementById('authority')).left;
//change node Left positioning
this.inst1Left = this.institution1Left - 26;
this.inst2Left = this.institution2Left - 26;
this.inst3Left = this.institution3Left - 27;
this.authLeft = this.authorityLeft - 27;
}