1

当我尝试对 iframe 内容调用 .trigger('create') 方法时,它不起作用,并且 css 类不适用于 input:text 元素。但是当我为 iframe 之外的 html 内容调用 .trigger('create') 方法时,它可以工作

请转到jsfiddle 上的“此处”链接,然后单击“加载移动视图”

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>
4

2 回答 2

1

iFrame 内容不应“轻松”访问,所以对我来说这是正确的行为。

如果您查看jQuery Mobile API示例,您会看到所有页面都是使用 iFrame 完成的,并且每个 iFrame 都有自己的 jQuery Mobile 版本。

因此,如果您有一个iframe,在 iFrame 中包含 JQM,一切都应该没问题。

于 2013-08-13T12:49:03.027 回答
0

我可以通过在 iframe 中编写一个 javascript 函数来解决这个问题。并从 iframe 外部调用该函数。

在 iFrame 中

<script>
window.trigerCreate =function(){$(".fbm_contactform").trigger("create");}
</script>

父母

window.frames[0].trigerCreate();
于 2013-08-14T05:13:42.637 回答