Принудительное обновление на кнопке группы управления Jquery Mobile на маленьком экране - PullRequest
1 голос
/ 10 июня 2011

У меня есть контрольная группа 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>

На больших экранах (ПК, iPad) я хочу, чтобы текст показывал ~ data-iconpos = "left".На экранах меньшего размера (Mobile, Smartphone) мало места, поэтому я не хочу отображать текст ~ 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');                                                                                                 

Ответы [ 4 ]

3 голосов
/ 13 сентября 2012

может быть, уже слишком поздно, но для тех, кто приходит сюда с тем же вопросом:
Вы можете использовать .trigger('create') на любом элементе, чтобы вызвать событие «Создать» для создания магии JQM над элементами.

3 голосов
/ 24 сентября 2012

Я решил это так:

$button = [YOUR CONTROLGROUP DIV]

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

$button.controlgroup();
2 голосов
/ 10 июня 2011

Для кнопок используйте метод buttonMarkup() вместо controlgroup()

В общем, я предпочитаю использовать метод page(), см. Этот пост

JqueryМобильный: обновление формы более одного раза

1 голос
/ 27 ноября 2013

Что мне подходит, так это двойной вызов controlgroup ();один раз для инициализации, затем для обновления, например:

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