【问题标题】:How to style data-icons dynamically in jquery mobile 1.4.2?如何在 jquery mobile 1.4.2 中动态设置数据图标的样式?
【发布时间】:2014-08-01 12:30:05
【问题描述】:

我刚刚在我的框架中将我的 jquery 移动代码从 1.3.1 更新到了 1.4.2。 我面临的挑战是根据开发人员的参数有条件地设置我的数据图标样式。

1.3.1 的代码,

myButton.find('.ui-icon').css('background-color',iconColor);

在 1.4.2 中,jQuery 对图标使用伪类 :after,由于它不是 DOM 的一部分,因此 JavaScript 无法访问。

我可以通过更改图标元素的 DOM 来实现它(但不想为了性能而这样做)? 有没有其他办法?

【问题讨论】:

  • 唯一的方法是创建自定义类stackoverflow.com/a/24578631/1771795,以防您想使用自定义图标。要更改 jQM 图标,只需将相关图标类添加到按钮即可。

标签: javascript jquery jquery-mobile


【解决方案1】:

如果您的用例允许您从预先确定的图标背景颜色列表中进行选择,您可以为每种颜色设置类,然后在代码中将它们切换出来。

给定一个带有图标的按钮:

<button id="btnIcon" class="ui-btn ui-icon-delete ui-btn-icon-left ">Button</button>

这里有 3 个类分别将背景颜色设置为红色、绿色和蓝色:

.redIcon:after {
    background-color: #97080E;
}
.greenIcon:after {
    background-color: #488C13;
}
.blueIcon:after {
    background-color: #1B55C0;
}

然后在脚本中,删除所有颜色类,然后添加要生效的颜色类:

$("#btnIcon").removeClass("redIcon greenIcon blueIcon").addClass(className);

这是一个有效的DEMO

单击标记为红色、绿色和蓝色的按钮以查看图标更新。

【讨论】:

  • 这是一个很好的方法,但用例不同......开发人员应该能够传递任何颜色(明天也可能会改变)。我只是复制了 after 伪元素的计算样式,并用图像制作了自己的 div。谢谢
猜你喜欢
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-06
  • 1970-01-01
  • 2011-10-01
相关资源
最近更新 更多