jQuery的移动 - 动态创建的表单元素
-
27-09-2019 - |
题
我创建一个网上数据库驱动的离线网络应用针对iOS设备。我试图使用jQuery Mobile的,但我在创造各种形式的问题。
在形式选项从数据库查询服用,因此它们被插入到页面已经加载之后,因此,“jQuery的Mobilification”不会发生。以通过源咋一看,似乎有不被调用到这个任何明显的方式在这个阶段(当然这是一个alpha版本,我认为这将是一个相当普遍的要求,所以我希望它将会来)。是否有某种解决方法我可以把这样做呢?我特别感兴趣的单选按钮,复选框和选择列表。
解决方案
这是瞎搞在无证内部,但以下为我工作:
$("#some-div").load("/html/fragment/",
function() {
$(this).find("input").customTextInput();
});
有用于按钮等同的方法,复选框等。
有在 HTTP看看_enchanceControls
[原文如此]方法://code.jquery.com/mobile/1.0a1/jquery.mobile-1.0a1.js
更新1.0Alpha2 :作为可以与图书馆的内部玩耍时预期的,这不再是最新版本的作品。更改customTextInput()
到textinput()
修复它有点,但主题并不完全适用于某些原因。我们被警告...
其他提示
<强>更新强>
的Beta2具有create
事件。当β2得到释放,我会更新我的常见问题。见 http://jquerymobile.com/blog/ 2011/07 /第22 / jquery的移动队更新周的七月-18 /
更新的常见问题: http://jquerymobiledictionary.pl/faq.html
作为CaffeineFueled提出 - .page()
是使JQM工作用的任何部分的方式HTML
.page()
只能进行一次一个元素调用。随你添加到页面的包装元素。它应该处理一切。
在当前选择的答案是略微过时。使用“刷新”,而不是“页”,用于造型动态添加内容(列表或表格)。
如果您将项目添加到一个列表视图,你会 需要调用刷新()方法 它更新的款式和创建任何 所添加的嵌套列表。对于 例如,
$('ul').listview('refresh');
在您的AJAX调用完成并插入表单元素尝试调用:
$("#the-page-id").page();
相信jquery的移动团队将增加对各种UI元素.REFRESH()方法在未来来解决这个问题。
是的问题是像你描述。当文档准备好了“动员”被激发。但是,由于您的离线数据库查询是异步的,其结束的document.ready被触发后。因此,DOM在后面的过程中更新,并没有添加到所有的div和列表项额外的CSS。
我想你将不得不改变移动JS不要在文件准备运行的来源,但是当你告诉它运行运行。然后,你就必须调用该函数在数据库中的回调。
像看起来是目前唯一的选择。
传统我用jqtouch现在煎茶。我还没有与jQuery移动多播放。
另外 - 你可以用它必要的CSS样式查询它的数据库后,写出你的HTML。如果你使用Firebug插件的Firefox,你可以看到什么款式/类应用越来越动员运行时。你可以只写出来使用这些公约的HTML。不理想,但会的工作。
naugtur是正确的,你必须调用。第(),您添加到DOM任何元素,那么它的作品了很好的:
var el = $('<input type="text"/>')
el.page();
$('#something').append(el);
这个工作对我来说(jquerymobile1.7.0):
$('#formular').append('<div data-role="fieldcontain" class="ui-hide-label">' +
'<label for="name" class="ui-hidden-accessible">Name:</label>' +
'<input type="text" name="name" size="25" id="name" placeholder="Name"/>' +
'</div>');
$('#name').textinput();
目前有所谓的插件函数对所有类型的元素形式的元素(例如滑块,的TextInput等)来创建它们。
下面是该文档的链接此功能汤姆津津乐道。不知道什么时候加入他们,但我使用它,它为我的作品!
http://jquerymobile.com/test/docs/forms/plugin- eventsmethods.html