Jquery mobile 在主干视图内切换jquery mobile ui按钮的图标

Jquery mobile 在主干视图内切换jquery mobile ui按钮的图标,jquery-mobile,backbone-views,Jquery Mobile,Backbone Views,使用以下代码更改jquery mobile属性时出现问题: this.$("#" + idOfButton).attr('data-icon', "check") .find('.ui-icon') .addClass('ui-icon-' + "check") .removeClass('ui-icon-' + "grid"); 运行此代码时,我会在chrome调试器中的所有类和数据角色中看到更新。我在主干视图中进行此操作 问题是我从未在实际视图中看到更改,视

使用以下代码更改jquery mobile属性时出现问题:

 this.$("#" + idOfButton).attr('data-icon', "check")
     .find('.ui-icon')
     .addClass('ui-icon-' + "check")
     .removeClass('ui-icon-' + "grid");
运行此代码时,我会在chrome调试器中的所有类和数据角色中看到更新。我在主干视图中进行此操作


问题是我从未在实际视图中看到更改,视图仍然显示旧的网格图标

我认为您的选择器有问题。使用$+idOfButton选择元素就足够了。因此,要更改图标:

$("#" + idOfButton).removeClass('ui-icon-grid').addClass('ui-icon-check');
仅供参考:jquerymobile对按钮具有某种“二元性”,可以用和声明

更新参考jQuery Mobile 1.1.2/1.2.0

增强是不同的,这是有效的:

$("#test_a").find(".ui-icon").removeClass("ui-icon-grid").addClass("ui-icon-check");
但不能使用$document.on附加事件。改用:

$("#change").live("click", function()
{
    $("#test_a").find(".ui-icon").removeClass("ui-icon-grid").addClass("ui-icon-check");
});

谢谢你回到Sga。我试过你的建议。我仍然在使用jquery mobile 1.1.2版本。2013年3月25日,版本1.1.2已经过时。更新是一个选项吗?同时,我看到了我能做的,你不需要担心这个事件,因为我使用主干的事件。因此,每当它注册一个tap,它就会正确地启动我的函数。我会试试你的建议。好的,我试试你的建议。好吧,至少这次它改变了图标,但它不只是显示检查,而是显示网格以及设置图标,就像我之前发送的第一张图片一样。我想知道这一切是从哪里来的?这看起来很奇怪。
$("#test_a").find(".ui-icon").removeClass("ui-icon-grid").addClass("ui-icon-check");
$("#change").live("click", function()
{
    $("#test_a").find(".ui-icon").removeClass("ui-icon-grid").addClass("ui-icon-check");
});