如何在特定时间间隔突出显示div中的文本。时间间隔已在每个div的“spacing”属性中提及。是否可以在setInterval或setTimeout函数中动态更改时间间隔。我编写了我正在使用的HTML和jquery代码的结构。
<html>
<head>
<style>
.green_class{
background-color:green;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$("#btnclick").click(function(){
var childs=$("#test").children();
$(childs).each(function(){
var time_interval=$(this).attr("intervals");
setTimeout(function(){$(this).addClass("green_class");},parseInt(time_interval));
});
});
});
</script>
</head>
<body>
<div id="test" style="float:left">
<div intervals="0">Lorem </div>
<div intervals="500">Ipsum </div>
<div intervals="800">is </div>
<div intervals="1000">simply </div>
<div intervals="1200">dummy </div>
<div intervals="1400">text </div>
<div intervals="1600">of </div>
<div intervals="1800">the </div>
<div intervals="2000">printing </div>
<div intervals="2200">and </div>
<div intervals="2400">typesetting </div>
<div intervals="2600">industry</div>
</div>
<input type="button" value="Highlight" id="btnclick"/>
</body>
</html>
上述脚本无法正常运行。是否可以动态更改setTimeout函数的持续时间。请提供宝贵的建议/解决方案。
答案 0 :(得分:1)
您的expando属性“interval”应引用为attr("intervals")
,而不是attr(intervals)
此外,我认为您可以childs.each
而不是$(childs).each
,因为childs
已经是jQueryified对象。
答案 1 :(得分:1)
重要代码http://jsfiddle.net/NyuWb/
您还在错误的上下文中调用$(this).addClass("green_class");
。
所以我的版本:
$("#btnclick").click(function() {
$("#test").children().each(function() {
var time_interval = $(this).attr('intervals'),
_this = $(this);
setTimeout(function() {
_this.addClass("green_class");
}, parseInt(time_interval));
});
});