javascript - Setinterval 不适用于文本

标签 javascript jquery html css

你好,我正在为 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/

相关文章:

javascript - jQuery:检查元素是否已分配给 var

javascript - 最后一张幻灯片上的反向 Owl Carousel

javascript - 如何从表行中获取特定列

html - 用响应式视频填充 Bootstrap 列背景

javascript - 如何使用 Javascript 获取给定字符串中第 n 次出现的一组子字符串?

html - 如何在我的 Div 中保留我的联系人?

javascript - 如何清空 td 的值而不删除嵌入其中的输入?

javascript - 触发调整大小事件时出了什么问题?

JavaScript 未写入页面

javascript - 数据表选择第一行onload