我在这里要做的是:
我想要随时间逐渐显示的元素很少。所以,我尝试使用以下代码:
/*Defining an object with selectors*/
var ticks_obj = {
1: "#Pros1",
2: "#Pros2",
3: "#Pros3"
};
/*Using setinterval within loop with 1 sec gap*/
jQuery.each(ticks_obj, function(index, val){
setInterval(function(){
jQuery(val).show(500);
}, 1000);
});
麻烦是:
所有元素中都会立即发生{p>.show()
。不是一个接一个。
所以,我改变了代码并做了:
/*Object Definition here*/
/*Using loop within setinterval*/
jQuery.setInterval(function(){
jQuery.each(ticks_obj, function(index, val){
jQuery(val).show(500);
});
}, 1000);
这显示没有结果。
我无法理解。有人可以用几句话在子弹点上澄清它吗?
使用jQuery也是最简单的解决方案吗?
答案 0 :(得分:3)
使用
jQuery.each(ticks_obj, function(index, val){
setTimeout(function(){
jQuery(val).show(500);
}, index * 1000);
});
答案 1 :(得分:1)
当你做了
setInterval
它快速迭代元素真正,并且使用最后一个间隔的毫秒执行每个相应的间隔。这就是他们同时出现的原因。
您真的不需要duration
,因为您可以像.show()
一样传递duration
,并在每次迭代时递增var duration = 1500;
jQuery.each(ticks_obj, function(index, val){
jQuery(val).show(duration);
duration += 1500;
});
/**
*
* @constructor
* @suppress {missingProperties}
* @param {string} idOfTableContainer
* @param {Array.<Object>} tableDataInJson
*/
function TableBuilder(idOfTableContainer, tableDataInJson) {
"use strict";
var idParser = new IdParser(idOfTableContainer, "row");
/** @type {Array.<Object>} */
var dataInJson = JSON.parse(JSON.stringify(tableDataInJson));
}