【问题标题】:Update data-theme after page load with jquery mobile使用 jquery mobile 加载页面后更新数据主题
【发布时间】:2011-01-18 05:55:14
【问题描述】:

我在控制组中有几个按钮来表示开/关,我想在单击时切换它们的主题。当我单击其中一个按钮时,我可以更改主题,但是一旦我移动鼠标使其不悬停在它上面,它就会将主题更改回原来的样子。我怎样才能让主题坚持下去?这是我的按钮和 javascript:

<div data-role="controlgroup" data-type="horizontal">
  <div title="lights.MyLight.ON" data-role="button">ON</div>
  <div title="lights.MyLight.OFF" data-role="button" data-theme="b">OFF</div>
</div>

$("div[title]").click(function() {
        var action = this.title;
        jQuery.fn.log(action);
        $.ajax({
            url: 'do.php?a='+action,
            cache: false
        });

        var cls = this.getAttribute('class');
        var pcs = cls.split(" ");
        var color = "";

        cls = "ui-btn " + pcs[1];

        if(pcs.length > 3)
        {
          color = pcs[3].split("-");
          cls = cls + " ui-controlgroup-last"
        }
        else
        {
          color = pcs[2].split("-");
        }

        cls = cls + " ui-btn-up-b";

        this.setAttribute('data-theme', 'b');
        this.setAttribute('class', cls);
    });

【问题讨论】:

  • 你是否碰巧有一个 onmouseout 事件监听器附加到 div(或任何父元素)?

标签: javascript ajax jquery mobile


【解决方案1】:

首先您需要将class 属性添加到div 的。

【讨论】:

  • 这适用于简单的情况,但据我所知,当您应用数据主题时,该数据主题也适用于嵌套的 jquery 移动小部件。所有这些嵌套的小部件也需要更新它们的 data-theme 属性和它们的类。更复杂的是,看起来一些小部件将父数据主题应用于特定的嵌套小部件。
猜你喜欢
  • 2012-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-14
  • 2012-05-20
  • 2011-12-27
  • 2019-12-11
  • 1970-01-01
相关资源
最近更新 更多