2016-06-27 1 views
1

jquery에서 유형 효과를 원합니다.문자열의 일부가 누락되었습니다. 마지막 글자를 쓰지 않습니다.

문제는 문자의 마지막 문자를 쓰고 있지 않다는 것입니다.

'안녕하세요?' ?

var str = 'how are you?', i = 0, isTag, text; 
    (function type() { 
    text = str.slice(0, ++i); 
    if (text === str) return; 
    document.getElementById('m').innerHTML = text; 
    var char = text.slice(-1); 
    if(char === '<') isTag = true; 
    if(char === '>') isTag = false; 
    if (isTag) return type(); 
    setTimeout(type, 100); 
    }()); 

https://jsfiddle.net/9a8Lbgwc/

답변

1

다음과 같은 라인을 교체해야합니다

을 당신은 HTML 콘텐츠를 업데이트하기 전에 기능을 기존하는 마지막 반복에서.

+0

놀라운! 고마워 친구 야! –

+1

@RickJoe 아주 환영합니다 :) jQuery는 바닐라 자바 ​​스크립트를 사용하고 있지 않습니다. – undefined

0

는 그냥 document.getElementById('m').innerHTML = text; 마지막 반복에서 실행되지 않습니다 때문입니다

if (text === str) 
    return; 
+3

그래서 함수가 영원히 실행됩니까? – undefined

1

제거 떠날 것이다.

var str = 'how are you?', i = 0, isTag, text; 
    (function type() { 
    text = str.slice(0, ++i); 

    document.getElementById('m').innerHTML = text; 
    if (text === str) return; 
    var char = text.slice(-1); 
    if(char === '<') isTag = true; 
    if(char === '>') isTag = false; 
    if (isTag) return type(); 

    setTimeout(type, 100); 
    }()); 
관련 문제