在jQuery移动选择列表上手动触发样式

时间:2012-02-11 21:15:21

标签: jquery-mobile

我正在构建一个带有Ajax调用的选择列表,当另一个选择列表发生更改时会触发该调用。

使用jQuery样式正确加载页面,但是当我用新div替换我的ajax容器时,我无法使用jQuery mobile来格式化它。这意味着它将恢复为本机选择列表格式。

我已经尝试了JQM documentation中的建议:

var myselect = $("select#foo");
myselect[0].selectedIndex = 3;
myselect.selectmenu("refresh");

但这不起作用。我的页面最初加载:

<div id="ajax-destination">
     <select id="destinationAirport" data-native-menu="false">
      <option value="-- Please Select --" data-placeholder="true">-- Please Select --</option>
     </select>

这是我的jQuery代码,包含在另一个选择列表的更改函数中。

$('#ajax-destination').empty();
$.post(url, { departureAirport : departureAirport }, function(data) {
    $('#ajax-destination').append(data);
var myselect = $("#destinationAirport");
myselect[0].selectedIndex = 1;
myselect.selectmenu("refresh");
});

我能想到的另一种方法是通过Ajax返回一个JSON数组并使用它来将选项添加到选择列表中,但我更喜欢发送格式化的HTML,因为它更容易理解。

2 个答案:

答案 0 :(得分:2)

@Andy:

myselect.selectmenu( “刷新”);将刷新选择框和as myselect.selectmenu('refresh',true) ;将重建选择菜单。它可以帮助你。请在http://forum.jquery.com/topic/how-to-add-items-and-refresh-the-select-menu-in-jquery-mobile

后查看此链接

答案 1 :(得分:2)

如果myselect.selectmenu("refresh");myselect.selectmenu("refresh",true);不起作用,您可以随时使用

刷新页面
you could try myselect.trigger('create');