$ .proxy函数问题,这没有被传递

时间:2015-02-24 19:05:02

标签: javascript jquery

我是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')
}

我的语法几乎与我在该插件代码中看到的完全匹配,但仍然是我的代码,确实无法正常工作,那么我真的错过了什么?

我将不胜感激任何帮助或指导。

0 个答案:

没有答案