2012-07-18 6 views
0

JQuery 모바일을 사용하는 웹 응용 프로그램에서 javascript를 사용하여 일부 HTML을 업데이트하려고합니다. 어떤 이유로 든 innerHTML 속성을 사용하여 JQuery Mobile 버튼을 만들 수 없습니다. 예를 들어 :자바 스크립트 함수 innerHTML의 스타일이 올바르지 않습니다.

document.getElementById('someDiv').innerHTML = document.getElementById('someDiv').innerHTML + '<p><em>' + var1 + '</em>:<br />' + var2+'</p>'; 

작품과 제대로 스타일 도착하지만 :

document.getElementById('someDiv').innerHTML = document.getElementById('someDiv').innerHTML + '<a href="#" onclick="appendButton()" data-role="button">' + var1 + '</a>'; 

하지 않습니다. 차이점이 있다면 someDiv<div data-role="controlgroup">으로 묶여 있다고 말해야합니다. 또한 페이지에 잘 작동하는 다른 버튼이 있습니다.

왜이 기능이 작동하지 않으며 어떻게 작동합니까?

편집 : 나는

+0

왜 "document.getElementById ('someDiv')를 사용하고 있습니까? innerHTML"이유가 "$ ('# elementId') .html()" –

+0

동일한 콘텐츠에 액세스하는 다른 방법이 아닙니까? –

답변

2

당신은 jQuery를 모바일 다시 스타일을 위해 방금 추가 한 요소를 알 수 있도록 pageCreate 이벤트를 트리거 할 필요가 ... 그 어떤 변화도 가져 오지면 폰갭을 사용하여 네이티브 응용 프로그램에이를 컴파일하고 .

$("#someDiv").trigger("create") 
+0

고마워요. 그러나 그 효과가없는 것 같습니다. 올바르게 사용하고 있습니까? document.getElementById ('someDiv'). innerHTML = document.getElementById ('someDiv'). innerHTML + '' + var1 + ''; –

+0

나를 위해 일하는 것 같다. http://jsfiddle.net/Lknac/8/ –

+0

네이티브로 컴파일 한 후에 작동하지 않는 이유가 있을까? ("# someDiv"). PhoneGap과 iOS 응용 프로그램? –

1

특수 기능을 가진 요소를 추가 할 때는 해당 기능의 초기화를 다시 실행하는 것이 중요합니다.

이 목적을 위해 정확히 수행하는 dom_mods() 함수를 정의하고 싶습니다. 따라서 페이지에 콘텐츠를 추가 할 때마다 dom_mods()이라고 부르면 모든 특수 기능이 실행되거나 업데이트됩니다.

1

div에 요소를 추가하려는 것 같습니다.

var div = document.getElementById('someDiv'), 
    anchor = document.createElement('a'); 
anchor.setAttribute('href', '#'); 
anchor.addEventListener('click', appendButton, false); 
anchor.setAttribute('data-role', 'button'); 
anchor.innerHTML = var1; 
div.appendChild(anchor); 

궁금한 점이 있으면 알려주세요.