我有一个包含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();
}
答案 0 :(得分:0)
应该只隐藏已点击的网格项
您可以使用 bind()
中提到的 @Andreas comment 传递点击元素的当前实例,因此它将是:
setTimeout(progress.bind(this), 3000);
而不是:
setTimeout(progress, 3000);
希望这有帮助。