当我尝试将.trigger('create')方法调用到iframe内容时,它不起作用,并且css类不应用于input:text元素。但是当我为iframe之外的html内容调用.trigger('create')方法时,它可以正常工作
请转到jsfiddle上的此链接'here',然后点击“加载移动视图”
javascript代码
$('#mobile_view').contents().find('body').append("<div id='fbm_mob_menu'></div>");
$("#load_mobileview").click(function(){
var content = ' <form class="fbm_contactform">\
<div>Contact Us</div>\
<div data-role="fieldcontain"><label for="name" >Name</label>\
<input name="name" type="text" class="m-field" /></div>\
<div data-role="fieldcontain"><label for="email">Email</label>\
<input name="email" type="text" class="m-field" /></div>\
<div data-role="fieldcontain"><label >Message</label>\
<input name="message" type="text" class="m-field" /></div>\
<input name="submitButton" type="submit" class="m-field" value="Send Message" /></div>\
</form> ';
$("#mobile_view").contents().find("#fbm_mob_menu").before(content);
$("#mobile_view").contents().find(".fbm_contactform").trigger("create");
});
html代码
<a href="javascript:void(0)" id="load_mobileview" >load mobile view </a>
<iframe id="mobile_view"></iframe>
<div id="test"></div>
答案 0 :(得分:1)
iFrame内容不应该“轻松”访问,所以对我来说这是正确的行为。
如果您查看jQuery Mobile API示例,则可以看到所有页面都是使用iFrame完成的,并且每个iFrame都有自己的jQuery Mobile版本。
因此,如果你有一个iframe
,请在iFrame中包含JQM,一切都应该是好的。
答案 1 :(得分:0)
我可以通过在iframe中编写一个javascript函数来解决这个问题。并从iframe调用该函数。
在iFrame中
<script>
window.trigerCreate =function(){$(".fbm_contactform").trigger("create");}
</script>
父母
window.frames[0].trigerCreate();