2016-07-08 4 views
-4

divに要素を追加するコードがあります。私が自分のコンピュータで試してみると、大丈夫です。しかし、私は自分の携帯電話でそれを試してみると、(Chromeデバッガ上の)要素が "Elements"ビューに表示されますが、実際の画面に表示されるまでには時間がかかります。要素が追加された後、DOMの更新に長時間を要する

私のコードは次のようになります。そのようなinnerHTMLアップデートを実行することにより、要素を追加する
$('.addField').click(function(){ this.parentNode.innerHTML = this.parentNode.innerHTML + '<div class="block"><input class="noBorder name" type="text" placeholder="Name"><input class="noBorder value" type="text" placeholder="Value"><a class="removeField" href="#">X</a></div>'; });

+0

であると私たちのすべてのコードを表示してくださいことを行うには良い方法、それはあなたが何かが意図せずにそれを遅らせていることかもしれません。 – Script47

+1

"長い時間"とはどういう意味ですか? 2番目? 10秒?もっと?また、どのような種類の電話がありますか?それはいつ製造されましたか?新しいですか?古い? – Pointy

+0

@Pointyそれはかなり新しいAndroidの携帯電話であり、私は複数を使用しています、そして、それは働きません。遅延のための5秒の周り –

答えて

1

ブラウザは削除して、以前のDOMサブツリーをクリーンアップする、新しいHTMLコンテンツを解析し、全体を構築しなければならないことを意味しますDOMノードの新しいセット

新しい要素を作成し、.appendChild()で追加する方がよいでしょう。

編集 — jQueryの

$('.addField').click(function(){ 
    var block = $("<div/>", { "class": "block" }); 
    block.append($("<input/>", { 
    "class": "noBorder name", 
    placeholder: "Name" 
    })) 
    .append($("<input/>", { 
    "class": "noBorder value", 
    placeholder: "Value" 
    })) 
    .append($("<a/>", { 
    "class": "removeField", 
    "href": "#", 
    "text": "X" 
    })); 
    $(this).parent().append(block); 
}); 
+0

私はすでにjQueryを使用しようとしていて、同じエラーがありました。 –

+0

@Tylerは答えの更新を参照してください。 – Pointy

+0

私はそれを試みましたが、依然として5-7秒の遅延の周り。しかし、入力をありがとう。 –

関連する問題