2

你能帮我处理这段代码吗:

javascript:

$(document).ready(function() {
            $('#roomresults').append('<option value="ahoj">say hallo</option>');
            $('#roomresults').selectmenu('refresh'); 
            });

和我的选择:

<label for="roomresults"> Results: </label>
<select name="roomresults" id="roomresults" data-theme="c">
</select>

它看起来很简单,但是当我运行它时,我的 javascript 控制台会告诉我

未捕获的类型错误:对象 [对象对象] 没有方法“选择菜单”

哪里有问题?谢谢你的回答:)

4

1 回答 1

1

不要使用这种语法:

$(document).ready(function() {
    $('#roomresults').append('<option value="ahoj">say hallo</option>');
    $('#roomresults').selectmenu('refresh'); 
});

像这样使用它:

$(document).live('pageinit',function(e,data){
    $('#roomresults').append('<option value="ahoj">say hallo</option>');
    $('#roomresults').selectmenu('refresh'); 
});

原因:$(document).ready(function() {还不够,此时 jQuery mobile 开始将页面加载到 DOM 中。事件pageinit用于检查 jQM 是否加载成功。只有在此事件之后或期间,您可以使用 jQM 功能,例如 selectmenu ('refresh')

您可以在此处找到更多相关信息:http: //jquerymobile.com/test/docs/api/events.html

没有证据的答案是什么:http: //jsfiddle.net/Gajotres/2wmZK/

于 2013-01-03T12:46:12.383 回答