Jquery mobile 如何为动态创建的listview的每个实例更改listview的init选项

Jquery mobile 如何为动态创建的listview的每个实例更改listview的init选项,jquery-mobile,Jquery Mobile,假设我有一个listview字符串 var html = ""; html += "<ol id=list2>"+ .... + "</ol>" $(“#list2”).attr('data-theme','e'); $(“#list2”).listview(“刷新”) $(“#列表2”).jqmData(“主题”,“e”) $(“#list2”).listview(“刷新”) 但主题没有更新。类似地,我必须更新listview的一些其他属性,如inset,sp

假设我有一个listview字符串

 var html = "";
html += "<ol id=list2>"+
.... + 
"</ol>"
  • $(“#list2”).attr('data-theme','e'); $(“#list2”).listview(“刷新”)
  • $(“#列表2”).jqmData(“主题”,“e”) $(“#list2”).listview(“刷新”)

但主题没有更新。类似地,我必须更新listview的一些其他属性,如
inset
splitIcon
。请让我知道如何以编程方式执行此操作。

要以编程方式更改主题,仅更改
数据主题
属性是不够的,还必须删除由旧主题添加的类,然后手动添加新的类。这里有几个链接指出了这一点:


很遗憾,listview刷新无法完成此操作,您需要执行此操作以实现主题更改:

var newTheme = 'b';

$.mobile.activePage.find('.ui-btn, .ui-li, .ui-listview').removeClass('ui-btn-up-a ui-btn-up-b ui-btn-up-c ui-btn-up-d ui-btn-up-e ui-btn-hover-a ui-btn-hover-b ui-btn-hover-c ui-btn-hover-d ui-btn-hover-e').addClass('ui-btn-up-' + newTheme ).attr('data-theme', newTheme );
$.mobile.activePage.find('.ui-header, .ui-footer').removeClass('ui-bar-a ui-bar-b ui-bar-c ui-bar-d ui-bar-e').addClass('ui-bar-' + newTheme ).attr('data-theme', newTheme );
$.mobile.activePage.removeClass('ui-body-a ui-body-b ui-body-c ui-body-d ui-body-e').addClass('ui-body-' + newTheme ).attr('data-theme', newTheme );  
下面是我的工作示例:。您应该对上述代码进行注释,以查看差异

var newTheme = 'b';

$.mobile.activePage.find('.ui-btn, .ui-li, .ui-listview').removeClass('ui-btn-up-a ui-btn-up-b ui-btn-up-c ui-btn-up-d ui-btn-up-e ui-btn-hover-a ui-btn-hover-b ui-btn-hover-c ui-btn-hover-d ui-btn-hover-e').addClass('ui-btn-up-' + newTheme ).attr('data-theme', newTheme );
$.mobile.activePage.find('.ui-header, .ui-footer').removeClass('ui-bar-a ui-bar-b ui-bar-c ui-bar-d ui-bar-e').addClass('ui-bar-' + newTheme ).attr('data-theme', newTheme );
$.mobile.activePage.removeClass('ui-body-a ui-body-b ui-body-c ui-body-d ui-body-e').addClass('ui-body-' + newTheme ).attr('data-theme', newTheme );