4

我在网上找到了一堆解决方案,但没有一个对我有用。基本上,我想切换按钮的图标。这是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>s)。

4

4 回答 4

8

最好的方法是:

$('#button').buttonMarkup({ icon: "home" });
于 2013-05-17T20:32:48.847 回答
1

试试这个:

$(this).attr('data-icon','arrow-u').button().trigger("refresh");

请参阅相关论坛主题:http: //forum.jquery.com/topic/how-dynamically-update-data-attributes

于 2012-07-23T03:48:50.560 回答
1

我发现了问题!我使用$(this).text('Hide suggestions')了 ,它删除了所有子元素。我将其更改为$(this).find('.ui-btn-text').text('Hide suggestions');现在可以正常工作了!

于 2012-07-25T02:28:07.790 回答
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");

我不知道女巫是最好的,我认为是最后一个。

于 2013-02-19T14:31:25.837 回答