jquery移动数据图标

Bob*_*-ob 5 jquery listview jquery-mobile

嗨,由于某种原因,我无法动态更改jquery移动设备中的某些属性.我可以看到,当我调用我正在使用的相应方法时,标记中的属性正在被更改,但元素的外观不会改变.是否需要在Jquery Mobile中重新初始化列表等?

顺便说一下,这里有一些代码向您展示我如何设置属性:

$('.className').each(function(){
    if ($(this).text() == tempLoc){
    console.log('FOUND MATCH WITH tempLoc and ' + $(this).text());
    $(this).attr('data-icon','alert');
    $(this).attr('data-theme','e');
}
});
Run Code Online (Sandbox Code Playgroud)

正如我所说,这是在代码中工作,但元素不会更新或改变外观.有任何想法吗?

更新:我找到了一种更新数据图标的方法,但它当然仍然是杂乱无章的.您可以使用以下方法访问数据图标:

$(this).children('div.ui-btn-inner').children('span.ui-icon').removeClass('ui-icon-arrow-r');
$(this).children('div.ui-btn-inner').children('span.ui-icon').addClass('ui-icon-alert');
Run Code Online (Sandbox Code Playgroud)

在这种情况下,$(this)指的是按钮本身,图标本身就在它的ui-btn-inner child的跨度中找到.将导致ui-icon-arrow-r.在这种情况下,替换您正在使用的任何类别.如果有人知道正确刷新按钮的方法,我将不胜感激.

use*_*990 12

$("#myButtonName").buttonMarkup({ icon: "star" });
Run Code Online (Sandbox Code Playgroud)

这将在运行中改变它.这是我的代码:

$(".menu-button").toggle(
    function()
    {            
        $(this).buttonMarkup({ icon: "star" });
        $(".navigation-menu-container").show();
    },
    function()
    {
       $(".navigation-menu-container").hide();    
    }
);
Run Code Online (Sandbox Code Playgroud)

请参阅此处的文档:

http://jquerymobile.com/test/docs/buttons/buttons-options.html


Leo*_*eon 2

您确实应该使用 JQM 选择器,如文档中指定的 jqmData() 。

例如

$('.className').each(function(){
   if ($(this).text() == tempLoc){
     console.log('FOUND MATCH WITH tempLoc and ' + tempLoc);
     $(this).jqmData('icon','alert');
     $(this).jqmData('theme','e');
   }
});
Run Code Online (Sandbox Code Playgroud)

希望这有助于解决您的问题