如何将其绑定到jQuery's事件
How to bind this to to a jQuery's event?
如何将其绑定到jQuery的事件?
例如,对于下面的推送菜单,我必须"记住"this
到var root
:
class PushMenu {
constructor() {
this.slideShown = false;
var root = this;
$('.navmenu').on('shown.bs.offcanvas', function() {
root.slideShown = true;
});
}
}
但我想知道我是否可以绑定this
,这样我就可以节省var root
:
class PushMenu {
constructor() {
this.slideShown = false;
$('.navmenu').on('shown.bs.offcanvas', function() {
this.slideShown = true;
});
}
}
这可能吗?
您正在使用es6类,所以我认为es6语法与箭头函数是正确的
$('.navmenu').on('shown.bs.offcanvas', () => {
this.slideShown = true;
});
使用jQuery.proxy()
接受一个函数并返回一个新函数,该函数将始终具有特定的上下文。
class PushMenu {
constructor() {
this.slideShown = false;
$('.navmenu').on('shown.bs.offcanvas', jQuery.proxy(function() {
this.slideShown = true;
}, this));
}
}
我们可以在这里使用jQuery.proxy
,这样对this的引用指的是PushMenu的对象,而不是触发事件的元素。
- jQuery Proxy Usage
- 该 的控制值
相关文章:
- 选择onclick事件jquery
- 用于多个类事件Jquery的单个函数
- 激发滑块's幻灯片事件jquery ui
- 设置重复按钮以注册点击事件jquery
- 保留当前点击事件jquery
- 启动/停止按键事件jquery
- 在事件jquery中插入一个函数
- 删除克隆的事件JQuery
- typeahead选择事件(jQuery)的动态绑定
- 触发自定义事件 Jquery
- 绑定两次或更多次的事件 jquery
- 单击时的事件 jquery 不起作用
- 在鼠标悬停事件 jquery 上显示边框的内容
- 同时触发两个鼠标事件 jQuery
- 焦点事件 jquery 组合框/自动完成
- 如何在页面中捕获“正文”和“正文”事件[Jquery].
- 将对象传递给事件 jQuery
- 验证“取消”上的字段 单击Onbeforeunload事件JQUERY
- 复选框单击事件 jQuery 不起作用
- 口述事件jquery顺序