你好,我正在为 j Query 编写一个插件,但问题是我必须使用函数 $.now() 无论如何,当我将它与 alert() 一起使用时,它工作得很好,但是当我将它放入代码中时,它不显示任何内容,text() 也可以在插件中使用,但唯一的问题是当我使用函数设置间隔时现在事情出现了我已经尝试过这段代码:
setInterval(function(){
this.text($.now());
},1000);
它不起作用,但是当我使用警报时它起作用了,所以我必须做什么?
最佳答案
在 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 (仅通过文档中提到的 shim 支持 IE8 及以下版本)
setInterval((function(){
$(this).text($.now());
}).bind(this),1000);
这是一个 demo 所有三个选项
关于javascript - Setinterval 不适用于文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17356637/