在RaphaelJS中更改setInterval中的文本

时间:2015-02-02 13:40:45

标签: javascript text raphael

基本上我是 JavaScript 的新手,试图创建一个数字手表,我几乎已经用它来了,但是时间只是每秒写一遍,而不是取代之前的时间,这是我的代码的一部分,你能指出我出错的地方!感谢

P.S:我正在使用raphael库

setInterval(function(){
  var d = new Date();
  var h = d.getHours();
  var m = d.getMinutes();
  var s = d.getSeconds();

  if (h<10){h="0"+h};
  if (m<10){m="0"+m};
  if (s<10){s="0"+s};

  time = h+":"+m+":"+s;
  var digi = paper.text(110, 250, time).attr({"font-size": 15, "fill": "#000080"});
}, 1000);

我试过把这行

digi.attr({'text': time});

在函数关闭之前,但这没有用。任何帮助都会很棒!

2 个答案:

答案 0 :(得分:0)

您需要删除旧元素,或者只是更改其属性(我认为您的更新版本可能不起作用,因为您将digi作为带有功能范围的变量,您可以尝试将其作为全局范围或其他内容。否则这是一个解决方案......

 var digi;
 ...
 digi && digi.remove();

jsfiddle

答案 1 :(得分:0)

在开始打印时间之前清除画布。

添加以下行:

paper.clear();

在您打印时间之前。