Javascript JQuery Mobile自定义Flipbox设置初始化值
我有一个自定义的flipbox,在这里的接受答案中有描述: 我正在努力设置页面呈现后的初始值我的“更改页面”功能如下所示:Javascript JQuery Mobile自定义Flipbox设置初始化值,javascript,jquery-mobile,backbone.js,datebox,Javascript,Jquery Mobile,Backbone.js,Datebox,我有一个自定义的flipbox,在这里的接受答案中有描述: 我正在努力设置页面呈现后的初始值我的“更改页面”功能如下所示: changePage:function (page) { page.$el.attr('data-role', 'page'); page.render(); $('body').append(page.$el).trigger('create'); $.mobile.changePage(page.$el, {changeHash:fals
changePage:function (page) {
page.$el.attr('data-role', 'page');
page.render();
$('body').append(page.$el).trigger('create');
$.mobile.changePage(page.$el, {changeHash:false});
}
因为我使用Backbone.js管理视图,然后将导航委托给jQM
我基本上需要设置这个输入文本字段的初始值(可能有解决方法)
好的,我自己解决了这个问题,我愿意与大家分享解决方案: 首先,更改页面功能略有不同:
changePage:function (page) {
page.$el.attr('data-role', 'page');
//get rid of everything in the old page.
page.remove();
//render the page again
page.render();
$('body').append(page.$el).trigger('create');
$.mobile.changePage(page.$el, {changeHash:false});
}
remove调用是清除旧呈现HTML中的每个事件侦听器所必需的
在每个需要init参数的页面中,可以在呈现函数中指定以下内容:
render: function(){
....
this.$el.on('pageshow',this.initFields);
....
}
initFields: function(){
// put your jQuery code here (e.g. this.$el.find('foo').val('initValue');
}
请注意,从jQM文档开始,此解决方案在jQM的1.5.0版本之前有效,此后将不再触发pageshow事件