不能访问jQuery事件处理程序中的全局变量
Can not access global variables inside a jQuery event handler
我使用下面的代码来跟踪滚动,我想把选定的元素变量放在事件处理程序之外,这样就不会在每次用户滚动时调用它们,从而节省资源。只有当我将前两个变量放入事件处理程序中时,以下代码才有效:
var recommend_con_list=$(".recommend_con_list")
var recommend_con=$('.recommend_con')
$(window).scroll(function () {
var y=$(window).scrollTop()
if(y > 82){
recommend_con.css({position:"fixed",top:"0"})
}else{
recommend_con.css({position:"",top:""})
}
});
如果您想进一步优化,我会使用:
$(document).ready(function () {
var recommend_con_list = $(".recommend_con_list").get(),
recommend_con = $('.recommend_con').get(),
$window = $(window);
$window.scroll(function () {
var y = $window.scrollTop();
if (y > 82) {
for (var i = 0, j = recommend_con.length; i < j; i++) {
recommend_con[i].classList.add("special");
}
} else {
for (var i = 0, j = recommend_con.length; i < j; i++) {
recommend_con[i].classList.remove("special");
}
}
});
});
与此CSS:
<style type="text/css">
.special {
position: fixed;
top: 0;
}
</style>
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- delete关键字在全局变量上的不同行为
- 在javascript函数中设置全局变量
- Ember全局应用程序变量
- Selenium Web驱动程序访问Jquery中的Javascript全局变量
- 由全局范围内的 Web 应用程序声明的全局变量
- 引导程序中的全局变量.js在 Firefox for Android 扩展中
- Chrome 扩展程序全局变量
- 如何将数据存储在全局变量中以在应用程序中访问它
- 使用事件处理程序(基本Javascript)时出现全局变量问题
- 使用脚本加载程序注入的脚本访问全局变量
- 在kineticjs中的处理程序函数中使用全局变量
- 在大型骨干应用程序中使用全局变量
- 事件处理程序之间的全局变量
- 我应该使用Javascript或PHP设置一个全局变量来唯一标识web应用程序中的每个页面吗
- 具有动态创建元素的事件处理程序的全局变量范围
- 从Extjs MVC应用程序中获取全局变量
- 不能访问jQuery事件处理程序中的全局变量
- 可以在事件处理程序中更改全局变量吗?
- Javascript全局变量只能在应用程序运行后访问