设置特定元素的计时器

时间:2016-07-01 13:54:56

标签: javascript jquery timer

我有一个包含25个可点击项目的网格。如果有人点击了所需的项目,则应启动此项目的计时器。在计时器达到0之后,该项目应该被隐藏。这样做的最佳方式是什么?

这是网格:

<ul class="field">
        <?php
            for($i = 1; $i<26; $i++){
        ?>
            <li id="item-<?php echo $i; ?>" data-specie="test-<?php echo $i; ?>" data-level="0" class="field-item">
                <img>    
            <!--</li>--> 
        <?php
            }
        ?>
    </ul>

这是jquery部分:

$(".field-item").click(function()
{
    var level = $(this).data('level');
    level ++;
    $(this).data('level',level);
    $(this).find( "img" ).attr("src","../css/images/plant-1-"+level+".png");

    setTimeout(progress, 3000);
});

这是应该只隐藏已被点击的网格项的功能。 (我知道顺便说一下,这不会起作用,我只是不知道如何做这部分。)

function progress(){
    $(this).hide();
}

1 个答案:

答案 0 :(得分:0)

  

应该只隐藏已点击的网格项

您可以使用 bind() 中提到的 @Andreas comment 传递点击元素的当前实例,因此它将是:

setTimeout(progress.bind(this), 3000);

而不是:

setTimeout(progress, 3000);

希望这有帮助。