2016-07-08 3 views
-4

div에 요소를 추가하는 코드가 있습니다. 내 컴퓨터에서 해보니 괜찮습니다. 하지만 휴대 전화로 시도해 보면 Chrome 디버거에서 요소가 '요소'보기에 표시되지만 실제 화면에 표시 되려면 시간이 오래 걸립니다.요소 추가 후 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

"오랜 시간"이란 정확히 무엇을 의미합니까? 두 번째? 10 초? 더? 또한 어떤 종류의 전화를 가지고 있습니까? 언제 제조 되었습니까? 새로운가요? 늙은? – Pointy

+0

@Pointy 상당히 새로운 안드로이드 폰이며, 여러개를 사용했다. 지연 시간은 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 초의 지연 주위에. 그래도 입력 주셔서 감사합니다. –

관련 문제