在小屏幕显示上强制刷新 Jquery Mobile 控件组按钮

发布于 2024-11-14 13:36:47 字数 1318 浏览 4 评论 0原文

我有一个带有两个按钮的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

梦与时光遇 2024-11-21 13:36:47

也许为时已晚,但对于那些带着同样问题来到这里的人来说:
您可以在任何元素上使用 .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.

清风不识月 2024-11-21 13:36:47

我是这样解决的:

$button = [YOUR CONTROLGROUP DIV]

$button.find('a').button();

$button.controlgroup();

I've solved it this way:

$button = [YOUR CONTROLGROUP DIV]

$button.find('a').button();

$button.controlgroup();
习ぎ惯性依靠 2024-11-21 13:36:47

对于按钮,使用 buttonMarkup() 方法而不是 controlgroup()

一般来说,我更喜欢使用 page() 方法,请参阅这篇文章

Jquery Mobile:多次更新表单

For buttons, use the buttonMarkup() method instead of controlgroup()

In general, I prefer the usage of the page() method, see this post

Jquery Mobile: updating a form more than once

抠脚大汉 2024-11-21 13:36:47

对我有用的是调用 controlgroup() 两次;一次初始化,然后刷新,例如:

// refresh group
$('#checkboxes').controlgroup().controlgroup('refresh');

What works for me is calling controlgroup() twice; once to initialize, next to refresh, eg:

// refresh group
$('#checkboxes').controlgroup().controlgroup('refresh');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文