2017-12-21 30 views
0

명확하고 다시 내 setInterval 사업부는 사업부가이 간격을 취소합니다 해당 단어를 포함하지 않는 경우 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의 이미지를 제거하기 위해 다른 문을 사용할 수 있지만 그렇게되면이 경우 해결책은 한 번만 이미지를 추가 할 수 있지만 간격이 유지 때문에,이 이미지가 또 다시 추가됩니다 그게 최선의 내기가 될 것입니다 :

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

그래서, 그것은 진정한 진술 텍스트 당신이 웃는 얼굴을 제거하고 간격을 계속하게 할'5) PLACEHOLDER' 포함되어있는 경우 그? – Taplar

+0

질문을 이해하는 경우, 자리 표시자가 5로 시작하는지 확인하는 2 차 간격을 가져야하며, 첫 번째 간격이 취소되면 다시 시작하십시오. – Taplar

+0

텍스트가 '4) PLACEHOLDER'가 아닌 경우 clearInterval 대신 else 문을 사용하여 clearinterval이 없으면 이미지가 한 번이 아닌 여러 번 반복되어 추가되지만 예를 들어 텍스트는 4) PLACEHOLDER하지만 텍스트가 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"). 길이 == 0) 그러나 물론 이미지가 깜박이는 것처럼 보일 정도로 500m를 수행하게됩니다. – Unicornnn