.trigger('create')方法不适用于文本输入/ iframe

时间:2011-08-31 19:58:50

标签: jquery jquery-mobile iframe textinput

所以我动态地将文本输入插入到iframe内的jQuery移动页面中。我可以让它正确插入但触发器('create')方法不应用任何jqm样式,虽然它也不会抛出任何javascript错误。

插入iframe的页面上的代码:

 $('.textarea').click(function() {
   $('#form').contents().find('#maincontent').append('<div data-role="fieldcontain"><label for="insert">Text Input:</label><input type="text" name="insert" id="insert" value="" /></div>');
   $('#form').contents().find('#maincontent').trigger('create');
});

这里是iframe内部(在插入新文本输入之前)的样板jqm maincontent(我已经排除了页眉/页脚以便于阅读)

<div data-role="content" id="maincontent"> 
 <div data-role="fieldcontain">
     <label for="name">Text Input:</label>
     <input type="text" name="name" id="name" value=""  />
 </div>
</div>

4 个答案:

答案 0 :(得分:0)

创建事件可能会被触发,但你在哪里听它并回复?

就此而言,你可能需要像

这样的东西
$("#maincontent").bind('create', function() {
    //respond to the fired event
})

答案 1 :(得分:0)

我做出以下假设:

  • #form是您的iframe的ID。
  • iframe中的内容来自同一个域。

你试过这个:

$('.textarea').click(function() {    
  var iframecontent = $('#form').contents().find('#maincontent');
  var newstuff = $('<div data-role="fieldcontain"><label for="insert">Text Input:</label><input type="text" name="insert" id="insert" value="" /></div>');
  newstuff.appendTo(iframecontent).trigger('refresh');
});

答案 2 :(得分:0)

完成所有插入操作后运行此行。

$('body').append(html).trigger('create');

另一个SO用户https://stackoverflow.com/users/456850/devin-dixonOriginal Question)找到了窍门。

答案 3 :(得分:0)

在iframe中创建一个函数,并在该函数中包含trigger('create')方法。然后从iframe调用该函数。

this