在jQuery中访问javascript原生"this"

Mah*_*hdi 0 javascript oop jquery scope

我怎样才能访问函数this.today内部Moved?它将被调用,jQuery因此this关键字将被jQuery覆盖为jQuery对象或DOM元素.

这与我的相似:

(function(Map) {
    Map.Timeline = {
        today: null,

        Init: function () {
            jQuery("#timeline").mousemove(Map.Timeline.Moved); // or this.Moved
        },

        Moved: function (event) {
            console.log(this);                  // jQuery Object or DOM element
            console.log(this.today);            // fails
            console.log(Map.Timeline.today);    // works fine
        },

        // more code here ...
Run Code Online (Sandbox Code Playgroud)

Aru*_*hny 7

使用jQuery.proxy()在回调调用中使用自定义上下文

jQuery('#timeline').mousemove(jQuery.proxy(Map.Timeline.Moved, this));
Run Code Online (Sandbox Code Playgroud)