我想在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);
}());
答案 0 :(得分:1)
这是因为在最后一次迭代中没有执行document.getElementById('m').innerHTML = text;
。
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);
}());
答案 1 :(得分:1)
您应该交换以下行:
if (text === str) return;
document.getElementById('m').innerHTML = text;
在最后一次迭代中,您在更新html内容之前存在该函数。
答案 2 :(得分:0)
只需删除
if (text === str)
return;