ECMAScript 6
在html中我有一个id ="更新"和一些其他控制元素,类="控制"。当我按"更新"按钮,其他控件应该消失。
当我按下"更新"按钮,我得到:"未捕获类型错误:this.hide_controls不是函数"。
这可能有所帮助:如果我在断点处停止(参见"调试器"在代码中),那么"这个"等于按钮#update.btn.btn-default.control。
你能帮我调用hide_controls方法。
class ButtonManager{
constructor (){
this.init_main_object_buttons();
}
init_main_object_buttons(){
this._main_object_update_button = $("#update");
this._main_object_update_button.click(this.update_main_object);
this._controls = $(".control");
}
hide_controls(){
this._controls.addClass("hide");
}
update_main_object(){
debugger;
this.hide_controls();
...
}
}
答案 0 :(得分:0)
更改此行
this._main_object_update_button.click(this.update_main_object);
到这个
this._main_object_update_button.click(this.update_main_object.bind(this));
这会将方法调用的范围绑定到当前实例。
this
将等于ButtonManager
的实例,就像您希望的那样。