var n = "", l = "";
function OrderList(element) {
n = "1";
l = "2";
}
window.onscroll = function (ev) {
if ((window.innerHeight + window.scrollY) >= document.body.scrollHeight) {
console.log(n);//returns ""
}
};
为什么全局变量n,l在onscroll函数上丢失了它们的值? 在onscroll条件之前调用OrderList!
答案 0 :(得分:1)
没有被调用,只是声明了(...)
。声明一个函数不会在Javascript中执行它。由于在点击按钮时调用了OrderList
函数,因此在您记录全局变量值之前(在OrderList
处理程序中)可能会滚动页面
为了检查,你可以使OrderList成为像
这样的自执行函数onscroll
确保单击按钮并再次检查。它应该与您的原始代码一起使用。
答案 1 :(得分:0)
两个变量都定义为空字符串。 然后你打电话来看看价值o" n"从未改变过。它仍然是一个空字符串。 你永远不会调用OrderList,它应该改变n值。
但最重要的是:避免使用全局变量。