jquery移动数据图标

时间:2011-07-19 09:54:54

标签: jquery listview jquery-mobile

嗨我因为某些原因而无法动态更改jquery mobile中的某些属性。我可以看到,当我调用我正在使用的相应方法时,标记中的属性正在被更改,但元素的外观不会改变。是否需要在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');
}
});

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

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

$(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');

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

3 个答案:

答案 0 :(得分:12)

$("#myButtonName").buttonMarkup({ icon: "star" });

这将动态改变它。这是我的代码:

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

请参阅此处的文档:

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

答案 1 :(得分:4)

相关:

直播示例:

相关问题的链接:

答案 2 :(得分:2)

你应该真正使用JQM选择器,documentation中指定的jqmData()。

e.g。

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

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