2012-07-18 103 views
0

我試圖在使用jQuery移動的webapp中使用javascript更新一些HTML。 由於某些原因,我無法使用innerHTML屬性來創建JQuery Mobile按鈕。 例如:Javascript函數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">之內,如果這會產生任何差異。另外,頁面上還有其他按鈕可以正常工作。

爲什麼不工作,我該如何使它工作?

編輯:我這個編譯成使用PhoneGap的,如果說有什麼區別的本機應用程序...

+0

爲什麼使用「document.getElementById('someDiv')。innerHTML」爲什麼不是「$('#elementId')。html()」 – 2012-07-19 00:22:49

+0

是不是隻是訪問相同內容的另一種方式? – 2012-07-19 07:33:39

回答

2

你需要讓jQuery Mobile的知道重新風格您剛纔添加的元素觸發pageCreate事件。

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

謝謝你。但是,這似乎沒有任何影響。我是否正確使用它? 'document.getElementById('someDiv')。innerHTML = document.getElementById('someDiv')。innerHTML +'' + var1 + ''; $(「#someDiv」)。trigger(「create」);' – 2012-07-18 20:41:52

+0

似乎適用於我,http://jsfiddle.net/Lknac/8/ – 2012-07-18 20:48:07

+0

是否有任何理由在編譯爲本機後無效帶有PhoneGap的iOS應用程序? – 2012-07-18 20:57:56

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); 

讓我知道如果您有任何問題。