OO Javascript/jQuery事件点击处理程序
OO Javascript / jQuery event click handler
我是JS开发的新手,我试图使用"类"使用OO Javascript,我有一个名为"Timeblock"的类,它的构造函数是:
var Timeblock = function(occupied, on, element) {
this.occupied = occupied;
this.on = on;
this.room_id = 0;
this.element= element;
}
我用这种方式创建了一个对象:
timeblock = new Timeblock(false, false, $('#element'));
在这一点上一切都正常,现在我正试图在类构造函数的元素var上添加一个点击事件监听器,我尝试了:
var Timeblock = function(occupied, on, element) {
this.occupied = occupied;
this.on = on;
this.room_id = 0;
this.element = element;
timeblock = this;
this.element.click(function() {
timeblock.update();
});
}
Timeblock.prototype.update = function() {
if (!occupied) {
this.element.addClass('on');
}
}
在Chrome中调试时,我在this.element.addClass('on');
上设置了一个断点,检查我可以读取this.element: jQuery.fn.init[0]
的对象,但我无法使其工作。
即使在控制台中,当我键入this.element
时,我也会得到undefined
,但如果我键入this.occupied
,我就会得到false
我的问题是,为什么我变得不明确?我怎样才能让它工作?,我找了又找,但找不到任何好的材料来学习OO Javascript。
var Timeblock = function(occupied, on, element) {
this.occupied = occupied;
this.on = on;
this.room_id = 0;
this.element = element;
var timeblock = this; // need var statement
this.element.click(function() {
timeblock.update();
});
}
Timeblock.prototype.update = function() {
if (!this.occupied) { // forgot this
this.element.addClass('on');
}
}
两个错误。我修复了它们,并留下了解释性的评论。
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 提示使用服务器端事件处理程序激活JavaScript
- 将事件处理程序绑定到任何可能的事件
- 正在将事件处理程序添加到不存在的类
- 在AJAX回调和呈现PIXIJS之间处理程序流时遇到了问题
- Adobe Edge:动画完成时添加onComplete处理程序
- 是否可以从输入处理程序中确定输入的类型
- 在循环中附加事件处理程序时出现浏览器性能问题
- 在同一个javascript事件处理程序中调用不同的函数
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 检查事件处理程序参数
- 实现延迟的jquery更改事件处理程序
- 平均值.on(事件[,选择器][,数据],处理程序)
- getSript在同一对象上多次添加处理程序
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 如何让React JS点击处理程序在执行时更新DOM
- 如何使jQuery的“bind”或“on”事件处理程序幂等
- Backbone listenTo不将jquery函数作为处理程序进行激发
- 带有参数的Javascript事件处理程序
- Jquery事件处理程序仅适用于匿名函数