如何访问this.today
函数内的Moved
?它将通过jQuery
调用,因此jQuery将覆盖this
关键字到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 ...
答案 0 :(得分:7)
使用jQuery.proxy()在回叫电话中使用自定义上下文
jQuery('#timeline').mousemove(jQuery.proxy(Map.Timeline.Moved, this));
答案 1 :(得分:1)
您可以在覆盖之前存储它:
(function(Map) {
var myvar = $(this);
Map.Timeline = {
today: null,
Init: function () {
jQuery("#timeline").mousemove(Map.Timeline.Moved); // or this.Moved
},
Moved: function (event) {
console.log(myvar); // jQuery Object or DOM element
console.log(myvar.today); // fails
console.log(Map.Timeline.today); // works fine
},
// more code here ...