0

我正在尝试在使用 JQuery 移动的 web 应用程序中使用 javascript 更新一些 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>';

才不是。我应该说 thesomeDiv包含在 a<div data-role="controlgroup">中,如果这会有所作为。此外,页面上还有其他可以正常工作的按钮。

为什么这不起作用,我怎样才能使它起作用?

编辑:如果这有什么不同,我正在使用 PhoneGap 将其编译为本机应用程序......

4

3 回答 3

2

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

$("#someDiv").trigger("create")
于 2012-07-18T20:35:33.133 回答
1

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

为此,我喜欢定义一个dom_mods()完全可以做到这一点的函数。因此,每当我向页面添加内容时,我只需调用dom_mods()并运行或更新我的所有特殊功能。

于 2012-07-18T20:36:42.713 回答
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);

如果您有任何问题,请告诉我。

于 2012-07-18T20:42:57.910 回答