如何访问滚动事件中的对象范围
How to access object scope inside scroll event?
我有一个函数foo
,它是在window.scroll
上调用的。我想访问foo中的对象变量,例如,我想从父对象打印hello的值。
jsfiddle链接
var Object = {
hello: "hello",
foo: function(e){
alert(this.hello); //Prints undefined! I want to get this.hello
},
scrollListener: function(){
var _this = this;
$(window).scroll(_this.foo);
},
};
我认为用匿名函数包装_this.foo
就可以了。
在窗口中使用。滚动
$(window).scroll(function(){
_this.foo();
});
DEMO
有2个解决方案
1) 使用$.proxy
来完成该技巧。
$(window).scroll( $.proxy(_this.foo,this) );
演示
2) 返回foo函数,然后调用它。
foo: function(context) {
var that = context;
return function(e){ alert(that.hello); }
},
scrollListener: function(){
var _this = this;
$(window).scroll(_this.foo(_this));
},
演示
相关文章:
- 如何从jQuery的事件对象中检索属性
- 如何在JavaScript中基于事件对象获取文件名
- 如何避免在这种情况下修改事件对象
- 如何在事件处理程序中获取 javascript 事件对象
- 如果在设置侦听器之前触发了 DOMContentLoaded 事件,如何检索“事件”对象
- addEvent 给出空事件对象
- 修改鼠标事件对象的“目标”以进行事件委派
- 如何将参数传递给backbone.js中事件对象中绑定的函数
- 从ng重复奇数内部的ng点击访问事件对象
- 如何从 React 中的事件对象访问自定义属性
- 如何将事件对象传递给对象中的函数
- 正在发送事件对象
- 是否可以获得“”的事件对象;当前“;或“;最后一个“;事件,而不将其作为处理程序中的参数接收
- 如何将事件对象字符串化
- 通过angular传递关于事件预防的信息;s事件对象
- Javascript事件对象:其中是选择器
- Meteor.js:如何检索事件对象的父元素的数据属性
- JavaScript 如何重新识别事件对象变量
- 事件对象在此代码中的工作原理
- 是为响应 DOM 事件而创建的多个事件对象