JQuery - 事件处理程序中的 accessss 对象属性
JQuery - acess object property inside event handler
我正在尝试使用jquery对div进行扩展。该扩展名为NunoEstradaViewer,下面是代码示例:
(function ($){
NunoEstradaViwer: {
settings: {
total: 0,
format: "",
num: 0;
},
init: function (el, options) {
if (!el.length) { return false; }
this.options = $.extend({}, this.settings, options);
this.itemIndex =0;
this.container = el;
this.total = this.options.total;
this.format = ".svg";
this.num = 0;
},
generateHtml: function(){
/*GENERATE SOME HTML*/
$("#container").scroll(function(){
this.num++;
this.nextImage;
})
},
nextImage: function(){
/*DO SOMETHING*/
}
});
我的问题是我需要访问 this.num 的值并在滚动事件的处理程序函数中调用函数 this.nextImage,但对象"this"指的是滚动而不是"NunoEstradaViewer"。如何访问这些元素?
谢谢
通常在这种情况下,我所做的是将"this"的引用保存在变量中。
generateHtml: function(){
/*GENERATE SOME HTML*/
var self = this;
$("#container").scroll(function(){
self.num++;
self.nextImage;
})
}
常见的解决方案是存储对所需上下文的引用:
(function () {
var self;
self = this;
$('#container').scroll(function () {
self.doStuff();
});
}());
另一种方法是将上下文传递给函数:
(function () {
$('#container').scroll({context: this, ..more data to pass..}, function (e) {
e.data.context.doStuff();
});
//alternatively, if you're not passing any additional data:
$('#container').scroll(this, function (e) {
e.data.doStuff();
});
}());
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- 序列化数据属性中对象的最可靠方法
- 如何访问声音管理器2创建的声音对象
- FabricJs-限制主对象内添加对象的移动区域
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 值对象在某个变量发生更改后发生更改
- 如何为json对象中的段发送array[]
- JQuery - 事件处理程序中的 accessss 对象属性