0

有没有办法以时间延迟显示这些图像。提前致谢。

  $.each(people, function(i, data){

            if(this.dead == true){
                $('#item7').prepend(' <span style="position:relative; top: 7px;"><img src="images/alive.png"/> </span> ');
                }else if(this.dead == false){
                    $('#item7').prepend(' <span style="position:relative; top: 7px;"><img src="images/alive1.png"/> </span> ');
                }

    });
4

3 回答 3

1

是的,有办法。其实方法很多。

这是我可能会使用的:

$.each(people, function(i, data) {
    var src = this.dead ? 'images/alive.png' : 'images/alive1.png';
    $('<span style="position:relative; top: 7px; display: none;">')
               .append($('<img>', { src: src }))
               .prependTo('#item7')
               .delay(i * 1000)
               .show('fast');
});

它确保元素最初是不可见的 ( display: none),然后使用 jQuery 动画延迟来排队.show()调用。

于 2013-04-16T21:04:45.713 回答
0

使用 setTimeout 来延迟它。那些 == true 和 == false 操作是什么?如果你想确保你的死属性为假或真,用===比较,否则,一个if()就足够了。

$.each(people, function(i, data) {
    setTimeout(function() {
        $('#item7').prepend($('<span style="position:relative; top: 7px;">').html($('<img/>', { src : (this.dead ? "images/alive.png" : "images/alive1.png") })));
    }, i * 500);
});

在这里观看一个例子:http: //jsfiddle.net/cLhvf/

于 2013-04-16T21:02:23.413 回答
0

这取决于你的意思。

var延迟= 500;(function(elements, index) { elements[index];//随心所欲。 setTimeout(function(){arguments.calle(elements, index + 1);}, delay); })(people, 0 )

$.each(people, function(i, data) { var self = this; setTimeout(function() { // 在这里做任何你想做的事情 }, delay); });

我认为延迟在这里不起作用。我可能是错的

所有代码都未经测试。

于 2013-04-16T21:17:08.347 回答