2

というクラスがあり.content、このコンテンツには という属性があります。関数を持つクラスを.data-time持つすべての要素を非表示にしたいのですが、誰か助けてもらえますか?.contentsetTimeout()

HTML コード :

<div class="content first" data-time="200"> </div>
<div class="content second" data-time="300"> </div>
<div class="content third" data-time="400"> </div>
<div class="content fourth" data-time="500"> </div>;

jQuery コード:

    $(".content", this ).each(function(){
        var time = $(this).attr("data-time");
        setTimeout(function() {
            $(this).hide("slow");
        }, time);
    });

これを行うのを手伝ってください。

4

2 に答える 2

5

あなたのsetTimeout機能でthisは、ウィンドウです。代わりにこれを試してください:

http://jsfiddle.net/uXVAs/

$(".content" ).each(function(){
        var $this = $(this);
        var time = $this.data("time");
        setTimeout(function() {            
            $this.hide("slow");
        }, time);
    });
于 2013-08-29T00:20:02.277 に答える
1

または、.delay() jquery 関数を使用できます。

$('.content').each(function(){
    var time = $(this).attr("data-time")
    $(this).delay(time).hide("slow")
});     

例はこちら。

于 2013-08-29T00:24:21.213 に答える