在小屏幕显示上强制刷新 Jquery Mobile 控件组按钮
我有一个带有两个按钮的 Jquery Mobile 控件组:
<div data-role="controlgroup" data-type="horizontal" class="headerMenu iconposSwitcher">
<a href="#" data-role="button" data-icon="barcode" data-iconpos="left" class="EANView">EAN</a>
<a href="#" data-role="button" data-icon="style" data-iconpos="left" class="styleView">Style</a>
</div>
在较大的屏幕(PC、iPad)上,我希望文本显示 ~ data-iconpos="left"。 在较小的屏幕(手机、智能手机)上,空间很小,所以我不想显示文本〜 data-iconpos="notext"
我可以在选择菜单上使用“刷新”功能。是否有类似的方法来刷新控件组或按钮元素?
我尝试了这样的操作,更改了 iconpos,但不重建按钮。
if ($('body').width() < 275)
{
$(".iconposSwitcher a").attr('data-iconpos','notext');
$('.headerMenu').controlgroup('refresh', true);
}
感谢您的提示和; Rgs
编辑:
这有效:
$(".iconposSwitcher a").removeClass('ui-btn-icon-left').addClass('ui-btn-icon-notext');
比想象的更容易...
编辑:
对于 div 元素(带有 input
的控制组):
$(".iconposSwitcher-div a").attr('data-iconpos','notext').removeClass('ui-btn-icon-left ui-btn-icon-right').addClass('ui-btn-icon-notext');
I have a Jquery Mobile controlgroup with two buttons:
<div data-role="controlgroup" data-type="horizontal" class="headerMenu iconposSwitcher">
<a href="#" data-role="button" data-icon="barcode" data-iconpos="left" class="EANView">EAN</a>
<a href="#" data-role="button" data-icon="style" data-iconpos="left" class="styleView">Style</a>
</div>
On larger screens (PC, iPad) I want the text to show ~ data-iconpos="left".
On smaller screens (Mobile, Smartphone) there is little space, so I don't want to display the text ~ data-iconpos="notext"
I can use the "refresh" function on select-menus. Is there a similar way to refresh controlgroups or button elements?
I tried it like this, changes iconpos, but does not rebuild the button.
if ($('body').width() < 275)
{
$(".iconposSwitcher a").attr('data-iconpos','notext');
$('.headerMenu').controlgroup('refresh', true);
}
Thanks for hints & Rgs
EDIT:
This works:
$(".iconposSwitcher a").removeClass('ui-btn-icon-left').addClass('ui-btn-icon-notext');
Easier than thought...
EDIT:
For div elements (controlgroup with input
):
$(".iconposSwitcher-div a").attr('data-iconpos','notext').removeClass('ui-btn-icon-left ui-btn-icon-right').addClass('ui-btn-icon-notext');
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
也许为时已晚,但对于那些带着同样问题来到这里的人来说:
您可以在任何元素上使用
.trigger('create')
来触发“Create”事件,从而对元素执行 JQM 魔法。maybe its too late but for those who come here with same question:
You can use
.trigger('create')
on any Element to trigger 'Create' event to do JQM magic on elements.我是这样解决的:
I've solved it this way:
对于按钮,使用
buttonMarkup()
方法而不是controlgroup()
一般来说,我更喜欢使用
page()
方法,请参阅这篇文章Jquery Mobile:多次更新表单
For buttons, use the
buttonMarkup()
method instead ofcontrolgroup()
In general, I prefer the usage of the
page()
method, see this postJquery Mobile: updating a form more than once
对我有用的是调用 controlgroup() 两次;一次初始化,然后刷新,例如:
What works for me is calling controlgroup() twice; once to initialize, next to refresh, eg: