所以,长话短说,我正在尝试为响应滑块做一个小脚本,我正在尝试找到文本最多的幻灯片,所以我知道哪一个是最大的幻灯片。然后我获得该幻灯片的高度并将滑块容器高度调整为幻灯片的高度。我创建了一个在$(document).ready()
和$(window).resize()
上运行的函数。但是,我遇到了其中一个变量的问题。
问题在于:正如您所看到的,我在开始循环幻灯片之前定义了一个名为lastlength
的变量,我将其默认值设置为零。然后,我检查上一张幻灯片的lastlength
是否大于当前幻灯片的totallength
,如果它不大,我将lastlength
的值更改为{的值{1}}。
但是,我注意到条件语句根本没有返回任何东西,所以当我做totallength
时,我注意到变量看起来是未定义的,尽管我在循环之前定义它。我尝试通过将我提供的参数复制到console.log(lastlength)
并替换变量的名称来确保名称是正确的。
这是功能:
console.log
有谁知道为什么会这样?
提前致谢。
答案 0 :(得分:3)
这是因为您稍后重新声明了lastlength
和lastlength_owner
:
var lastlength = totallength;
var lastlength_owner = $(this).attr('slide_id');
这些声明会影响函数外的var
变量。
只需在此处删除var
个关键字即可。
答案 1 :(得分:0)
您在
重新定义它var lastlength = totallength;
由于变量提升,这导致函数有效地以
开头var lastlength;
摆脱var
。