我在网上找到了一堆解决方案,但没有一个能为我工作。基本上,我想切换按钮的图标。这是HTML:
<div data-role="navbar" data-iconpos="top">
<ul>
<li><a data-icon="arrow-u">View suggestions</a></li>
</ul>
</div>
我尝试了所有这些:
$(this).buttonMarkup({ icon: 'arrow-u' });
//
$(this).attr('data-icon','arrow-u');
$(this).children().children().next().removeClass('ui-icon-arrow-d').addClass('ui-icon-arrow-u');
//
$(this).jqmData('icon','arrow-u');
但是,出于某种原因,按钮的子元素在运行上述任何一个之后都会消失(jQuery Mobile在按钮内添加了一堆<span>
)。
答案 0 :(得分:8)
最好的方法是:
$('#button').buttonMarkup({ icon: "home" });
答案 1 :(得分:1)
试试这个:
$(this).attr('data-icon','arrow-u').button().trigger("refresh");
参见相关论坛帖子:http://forum.jquery.com/topic/how-dynamically-update-data-attributes
答案 2 :(得分:1)
我发现了问题!我使用$(this).text('Hide suggestions')
删除了所有子元素。我将其更改为$(this).find('.ui-btn-text').text('Hide suggestions');
,现在效果很好!
答案 3 :(得分:1)
这些对我有用:
$("#yourButtonId .ui-icon").removeClass("ui-icon-gear").addClass("ui-icon-delete");
$(this).children("span").children(".ui-icon").removeClass("ui-icon-gear").addClass("ui-icon-delete");
$(this).find(".ui-icon").removeClass("ui-icon-gear").addClass("ui-icon-save");
我不知道女巫是最好的,我认为是最后一次。