jQuery Mobile:在pagecreate之后,对元素的引用会丢失

时间:2011-11-09 10:42:41

标签: jquery mobile

在我的应用中,我使用Javascript创建了一些元素。例如,我的起始HTML类似于:

<div data-theme="a" data-role="page" id="splash">
  <div data-role="content" id="splashContent">        
  </div>
</div>

然后在Javascript中就像这样

myObject.prototype.addHeader = function(headerText) {
  var splashPageContent = jQuery('#splashContent');
  this.header = jQuery('<h1>'+headerText+'</h1>');

  splashPageContent.append(this.header);
}

到现在为止,一切顺利。在JQM

创建页面后,当我想要更改标题文本时,问题开始出现
myObject.prototype.changeHeader = function(headerText) {
  this.header.html(headerText);
}

这不起作用。当我在console.log“this.header”时,我确实得到了一个元素,但是这个元素似乎在DOM超空间中浮动(例如它没有父节点)。当我在页面上选择可见的标题时(使用Firebug),我获得的元素与console.log中显示的元素不同。

这怎么可能? JQM是否会生成标题的克隆?如何更改克隆标题的文本?

1 个答案:

答案 0 :(得分:0)

通过在 pagecreate事件之后创建元素来修复它。