你好我正在为j查询编码插件,但问题是我必须使用函数$ .now() 无论如何,当我使用它与alert()它完美的工作,但当我把它放在代码中它没有显示任何东西和text()也在插件中工作,但唯一的问题是当我使用函数设置间隔现在事情显示我尝试了这段代码:
setInterval(function(){
this.text($.now());
},1000);
它不起作用但是当我使用警报时它会起作用,所以我必须做什么?
答案 0 :(得分:6)
在setinterval回调函数中丢失上下文。你可以这样做。
//.. some event
var $this = $(this);
setInterval(function(){
$this.text($.now());
},1000);
//.. code follows
或者使用 $.proxy ,您可以设置上下文。
setInterval($.proxy(function(){
$(this).text($.now());
},this),1000);
或使用Ecmascript 5 Function.prototype.bind (支持IE8及以下仅通过文档中提到的垫片)
setInterval((function(){
$(this).text($.now());
}).bind(this),1000);
这是 demo ,包含所有三个选项
答案 1 :(得分:0)
这是指什么?建议你把实际的选择器而不是这个。在函数内部,其值可以变化
var obj = $(".text");
setInterval(function(){
obj.text($.now());
},1000);
obj在这里充当闭包