2012-07-18 82 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); 

让我知道如果您有任何问题。