【发布时间】:2015-03-10 14:47:25
【问题描述】:
我创建了一个简单的朗读功能,可以在特定时间突出显示单词。到目前为止,我是这样做的:
setTimeout(function(){
$(".page3 > p >*:contains('The')").css('background',textColor)
}, 400);
setTimeout(function(){
$('.word').css('background',transparent)
$(".page3 > p >*:contains('dog')").css('background',textColor)
}, 1000);
setTimeout(function(){
$('.word').css('background',transparent)
$(".page3 > p >*:contains('was')").css('background',textColor)
}, 1700);
我的问题是他们会是更好的方法吗? 我不能使用循环,因为每个单词和是不同的,单词的时间也非常不同。
编辑:我曾考虑过使用数组。键可以是单词,值可以是时间(毫秒)。我只是不确定我怎么能做到这一点?它需要某种形式的循环吗?
【问题讨论】:
-
你有 jsfiddle
-
我没有。有什么需要我详细解释的吗?
-
您的代码是否有效 - 如果可以,我们可以看到它。我会用空格分割字符串,但我不知道你做了什么
-
您可以稍微简化一下,但不要过多。我会将重复的部分变成独立的函数,并可能将浮动函数压缩为对象成员,但您仍然需要 function(){} 开销和每个规范的 setTimeout 间隔......
-
它确实有效,但它是一个庞大的项目(JS 中大约 3000 行代码)所以很难分离并放入 JS Fiddle。基本上,页面上的每个单词都是不同的跨度,每个单词都有“单词”类。这些超时在单击按钮时运行,并且单词开始突出显示。 (因此为什么我使用“包含”来定位每个单词)。如果您需要更多详细信息,请告诉我
标签: javascript timeout