我正在尝试将选项添加到jqueryMobile中的selectmenu。我读了一些我想从sqlite数据库中添加的值。从数据库读取工作(控制台日志输出告诉我它已找到16行)和保存新选项的变量也正确填充。但是,如果我想将选项添加到selectmenu,我会收到错误“无法在初始化之前调用selectmenu上的方法:尝试调用方法'刷新'。我试图在刷新之前运行selectmenu()方法,但它确实也没用。这是我的代码:
HTML:
<select name="subject" class="subjectDropdown" data-native-menu="false">
<option>%tx_subject%</option>
</select>
使用Javascript:
// Read all subjects from the database
fillSubjectsDropdown: function(){
sz.db.container.transaction(function(tx){
tx.executeSql("SELECT * FROM SUBJECTS ORDER BY sj_name", [], sz.db.selectSubjectsSuccess, sz.db.errorCB);
}, sz.db.errorCB, sz.db.successCB);
},
// Read subjects Callback
selectSubjectsSuccess: function(tx, results){
var len = results.rows.length;
console.log('### szlog: Subjects found: ' + len);
var subjects = '<option value="">' + sz.langdata['subject'] + '</option>';
for (var i = 0; i < len; i++){
subjects += '<option value="' + results.rows.item(i).sj_id + '">' + results.rows.item(i).sj_name + '</option>';
}
$(".subjectDropdown").html(subjects).selectmenu('refresh', true);
},
我搜索过并发现了一些文章,但没有一篇能真正帮助我。任何帮助将不胜感激。
我使用jqueryMobile 1.2.0,jquery 1.8.3和phonegap 2.3.0
由于
答案 0 :(得分:1)
如果出现此错误:
在初始化之前无法调用selectmenu上的方法:尝试 调用方法'刷新'。
无论是按钮,选择框还是列表视图,必须在使用刷新功能进行merkup增强之前初始化该元素。
更改您的代码:
$(".subjectDropdown").html(subjects).selectmenu().selectmenu('refresh', true);
首先 .selectmenu()会将其初始化,第二个 .selectmenu('refresh',true); 会为其设置样式。