我正在尝试使用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将其编译为本机应用程序,如果这有任何区别......
答案 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);
如果您有任何问题,请与我们联系。