Javascript函数innerHTML没有正确设置样式

时间:2012-07-18 20:31:41

标签: javascript html jquery-mobile

我正在尝试使用javascript在使用JQuery mobile的webapp中更新一些HTML。 出于某种原因,我无法使用innerHTML属性来创建JQuery Mobile按钮。 例如:

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将其编译为本机应用程序,如果这有任何区别......

3 个答案:

答案 0 :(得分:2)

您需要触发pageCreate事件,以便jQuery Mobile知道重新设置您刚刚添加的元素的样式。

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

答案 1 :(得分:1)

添加具有特殊功能的元素时,重新运行所述功能的初始化非常重要。

为此,我喜欢定义一个dom_mods()函数来完成它。因此,每当我向页面添加内容时,我只需调用dom_mods()即可运行或更新所有特殊功能。

答案 2 :(得分: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);

如果您有任何问题,请与我们联系。