再びフレームワークに戻ります。要素の値を取得し、要素の値をdomでクリアしてから、文字ごとに戻すメソッドがあります。Chome、FF、IE (10) でテストしました。すべてが正常に機能しています。しかし、IE には小さな問題があります。スクリプトの実行中にページを更新しても、要素の値はクリアされません。またはその後、実際には違いはありません。
<textarea cols="60" id="textarea">
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit lacus non hendrerit cursus.
</textarea>
<script>
(function(){
(this[arguments[0]] = function selector(id){
if(!(this instanceof selector)) {
return new selector(id);
}
this.elm = document.getElementById(id);
}).prototype = {
type: function(delay) {
var elm = this.elm;
var status;
if ('value' in elm) {
var text = elm.value;
elm.value = "";
status = 0;
} else if ('innerHTML' in elm) {
var text = elm.innerHTML;
elm.innerHTML = "";
status = 1;
}
var letters = text.split("");
var counter = 0;
function write() {
if (counter < letters.length) {
switch (status) {
case 0: elm.value += letters[counter]; break;
case 1: elm.innerHTML += letters[counter]; break;
}
}
counter += 1;
}
setInterval(write, delay);
},
};
})('$');
$('textarea').type("100");
これは IE 関連の問題ですか、それともコードに何か不足していますか? たぶんIEのような気がします>.>