2017-12-21 24 views
0

divが、それはdiv要素は、それらの単語が含まれていない場合、それはのは、divのテキストがtrueで、4) PLACEHOLDERあるので、間隔がクリアされていると言うが、聞かせて間隔をクリアします画像 を付加します4) PLACEHOLDER含まれている場合テキストが5) PLACEHOLDERに変更されます。間隔を再起動してifステートメントを再度確認するにはどうすればよいですか?をクリアして再起動したsetInterval

var interval = 500; 
var timer = window.setInterval(function() { 

    if(jQuery("div.text-split-original").text().trim().indexOf('4) PLACEHOLDER') != -1) { 
     $('.scar__label').prepend('<img src="smiley.gif" />'); 
     clearInterval(timer); 
    } 

}, interval); 

は私ではなくてclearIntervalの画像を削除するためにelseステートメントを使用することができますが、私はやるときがあれば解決策は、一度だけ画像を追加することなく、間隔を維持しているように、この画像は何度も何度も追加されますそれは私の最高の賭けになるでしょう:

var interval = 500; 
var timer = window.setInterval(function() { 

    if(jQuery("div.text-split-original").text().trim().indexOf('4) PLACEHOLDER') != -1) 
{ 
    $('.scar__label').append('<img src="smiley.gif" />'); 


} 
    else 
    { 
    $(".scar__label img:last-child").remove() 
    } 
}, interval); 

ありがとうございます。

+0

だから、それは真の文であるテキストはあなたがsmilieの顔を削除し、間隔を続けるようにしたい '5)PLACEHOLDER'が含まれている場合、その? – Taplar

+0

あなたの質問を理解している場合は、プレースホルダが5で始まるかどうかを調べる第2の間隔が必要です。最初の間隔がキャンセルされた場合は、もう一度開始してください。 – Taplar

+0

clearintervalの代わりにelse文を使用して、テキストが '4)PLACEHOLDER'ではない場合、画像を削除しますが、clearintervalを指定しないと、画像は一度ではなく何度も繰り返して追加されます。テキストは4ではありませんが、テキストが4の場合は)PLACEHOLDER画像を追加します – Unicornnn

答えて

0

(function($) { 
 
    var interval = 500; 
 
    var $smiley = $('<img src="smiley.gif" class="smiley" />'); 
 
    
 
    window.setInterval(function() { 
 
    //see if the text is 4) 
 
    if ($("div.text-split-original").text().trim().indexOf('4) PLACEHOLDER') > -1) { 
 
     //only add a smiley if one does not exist 
 
     if ($('.scar__label').find('.smiley').length < 1) { 
 
     $('.scar__label').prepend($smiley); 
 
     } 
 
     //see if the text is 5) 
 
    } else if ($("div.text-split-original").text().trim().indexOf('5) PLACEHOLDER') > -1) { 
 
     //delete that smiley! 
 
     $smiley.detach(); 
 
    } 
 
    }, interval); 
 
    
 
    window.setInterval(function(){ 
 
    if ($("div.text-split-original").text().trim().slice(0, 2) === '4)') { 
 
     $("div.text-split-original").text('5) PLACEHOLDER'); 
 
    } else { 
 
     $("div.text-split-original").text('4) PLACEHOLDER'); 
 
    } 
 
    }, 2000); 
 
}(jQuery));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<label class="scar__label"></label> 
 
<div class="text-split-original">4) PLACEHOLDER</div>

+0

これは画像がポップアップしないように見えます – Unicornnn

+0

@Unicornnnは、 。そのメソッドでキャッシングしているフィールドのいずれかが、タイムアウトの開始後に動的にページに追加されますか? – Taplar

+0

はい、json経由で追加されましたif(jQuery( "div.text-split-original")との乗算を止めることができます)text()。trim()。indexOf( '4)PLACEHOLDER')!= -1 && $( ".scar__label img")。length == 0)しかし、それはこれまで500mをやるので、画像が点滅しているように見える。 – Unicornnn

関連する問題