2011-06-10 123 views
1

上我有一个jQuery Mobile的controlgroup有两个按钮:强制在jQuery Mobile的controlgroup按钮刷新小屏幕显示

<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的),我希望文字显示数据 - 〜 iconpos = “左”。 在较小的屏幕上(手机,智能手机)几乎没有空间,所以我不想显示文本〜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元素(controlgroup与input):

$(".iconposSwitcher-div a").attr('data-iconpos','notext').removeClass('ui-btn-icon-left ui-btn-icon-right').addClass('ui-btn-icon-notext');                         
+1

我总是回到我的问题... – frequent 2012-06-28 09:45:29

回答

2

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

一般来说,我更喜欢page()方法的使用,看到此信息

Jquery Mobile: updating a form more than once

+0

这不工作... $ ATTR(“数据iconpos(“iconposSwitcher一”)。 ”, 'NOTEXT')页();但我更喜欢page()。 – frequent 2011-06-10 08:58:52

+0

明白了。只需切换类....不用介意page()。见上面 – frequent 2011-06-10 09:49:05

3

也许我但是对于那些来到这里的人有同样的问题:
你可以在任何元素上使用.trigger('create')来触发'Create'事件来对元素进行JQM魔术。

+2

你有没有试过?控制组非常棘手。见[这里](https://github.com/jquery/jquery-mobile/issues/4773) – frequent 2012-09-12 20:46:24

+0

这对我有用。感觉像作弊,成功。 – Shanimal 2012-09-24 15:22:03

3

我已经解决了这种方式:

$button = [YOUR CONTROLGROUP DIV] 

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

$button.controlgroup(); 
1

我什么工作是调用controlgroup()两次;一旦初始化,旁边的刷新,例如:

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