我是jQuery的新手,只是学习。我可以跨越jQuery中的$ .proxy函数并决定使用它制作一个小程序,但我的代码不起作用,继承人fiddle(键盘事件似乎在小提琴中有问题,不要#39;不知道为什么!)。
现在如果在if else构造中代替$(this),我直接使用$(' body')。我的代码工作(I.E.身体元素变红)。
也在函数(e)内部,如果我在console.log中这个,我得到html
元素,而这应该指向$('body')
。
是我的Jquery代码:
$('body').on('keydown.bla.lalalal' , $.proxy(function(e) {
if (e.which == 27) {
$('body').addClass('red');
} else {
$('body').removeClass('red');
}
},this ));
我只是在挖掘插件代码并发现了类似的功能:
if (this.isShown && this.options.keyboard) {
this.$element.on('keydown.dismiss.bs.modal', $.proxy(function (e) {
e.which == 27 && this.hide()
}, this))
} else if (!this.isShown) {
this.$element.off('keydown.dismiss.bs.modal')
}
我的语法几乎与我在该插件代码中看到的完全匹配,但仍然是我的代码,确实无法正常工作,那么我真的错过了什么?
我将不胜感激任何帮助或指导。