javascript - 重复JS函数

标签 javascript jquery

我试图让这个函数在它的循环结束时重复。我尝试将函数分配给变量并在回调中调用变量,但失败了。我尝试将此函数包装在 setInterval 函数中,但仍然无法正常工作。

如何让此函数运行无限循环并重复自身?

$("span.text-change").typed({
     strings: ["First sentence.", "Second sentence."],
     typeSpeed: 30, // typing speed
     backDelay: 500, // pause before backspacing
     callback: function () {
         // do stuff
     }
 });

这是插件: Typed JS

jsFiddle here

最佳答案

Typed.js 作者在这里。我认为这是该死的了不起的人喜欢我的代码足以挖掘它并使更多功能起作用。我确实打算将循环设置为您可以设置的默认功能,但现在这里有一个修复方法。

http://jsfiddle.net/LSsZr/8/

主要变化

self.stopArray = self.strings.length;
// instead of self.stopArray = self.strings.length-1;

这使得 stopArray 变量允许它在键入最后一个字符串后继续退格。否则,它会在打印完最后一个后停止。


// if (self.arrayPos == self.stopArray && curStrPos == curString.length){
// animation that occurs on the last typed string
// place any finishing code here
//  self.options.callback();
//    clearTimeout();
// }

以上已被删除。它检查输入的最后一个字符串,并在满足条件时触发一个函数。对于一个循环,我们不希望这样。


else{
   self.arrayPos = 0;
   self.typewrite(self.string, self.strPos);
}

以上已作为 else 添加到以下 if 语句...

if (self.arrayPos < self.strings.length){

因此,如果数组位置小于数组中字符串的数量,则键入它们。否则,将位置重置为 0,并再次运行原始函数。

继续使用jsfiddle中的代码作为你的typed.js文件,然后在你想要的页面上正常运行。不过,不再有 callback() 了!

让我知道您的想法/问题!

编辑 看起来这里有人在插件中添加了一个循环,但它只是一遍又一遍地循环最后一句话 :p

您必须重置发送到打字函数的数组中的字符串。其他解决方案不会发生这种情况。

关于javascript - 重复JS函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19071466/

相关文章:

javascript - Node.js:将变量传递到文件

javascript - 动态创建 QML ObjectModel 元素

javascript - 我需要一个选择内部链接的快捷方式才能使用此功能

javascript - 单击图像时我需要显示更大的图像,有什么好的 jQuery 插件吗?

javascript - 使用 JavaScript 分隔字符串

jquery - 停止在页脚之前移动带有页面的 div

javascript - 如何将此 jQuery 代码转换为 ReactJS 代码(React、jQuery、HTML、CSS)

javascript - 水平对齐 Materialise CSS 是否可折叠?

javascript - 滚动到另一个 Div 时替换 P 元素中的文本

javascript - 无法让 Scrollmagic 插件作为示例工作