我有一个Object,我想在初始化Object时将函数绑定到按钮。
var MyClass = {
Click: function() {
var a = MyClass; // <---------------------- look here
a.Start();
},
Bind: function() {
var a = document.getElementById('MyButton');
a.addEventListener('click', this.Click, false); //<---------- and here
},
Init: function() {
this.Bind();
}
}
所以,我是新手使用它而且我不知道对象是否可以像这样声明(在单击按钮后应该在Click()
函数内完成):
这是一种不好的做法吗?在这里添加事件时,这可能是最佳方式吗?
修改: fiddle
答案 0 :(得分:0)
对于事件监听器来说,使用jQuery是最简单和最好的,例如,如果你想在用户点击按钮时执行一些.js代码,你可以使用: https://api.jquery.com/click/
我不知道你对.js有多新,但是你应该查阅关于JavaScript和jQuery的codecademy教程。
.click()演示:
https://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_event_click
答案 1 :(得分:0)
首先,您遇到语法错误。 getElementsById()
应为getElementById()
- 否s
。一旦你解决了这个问题,你所拥有的就会发挥作用,但要注意它并不是一个类,而是一个对象。
如果您确实想要将其创建为一个类来维护包含的方法和变量的范围,并创建新实例,则可以这样做:
var MyClass = function() {
var _this = this;
_this.click = function() {
_this.start();
};
_this.start = function() {
console.log('Start...');
}
_this.bind = function() {
var a = document.getElementById('MyButton');
a.addEventListener('click', this.click, false);
};
_this.init = function() {
_this.bind();
};
return _this;
}
new MyClass().init();
<button id="MyButton">Click me</button>