2012-04-01 2 views
0

Я пытаюсь динамически добавлять содержание в список:Добавление динамического содержимого в список разбивает JQuery Мобильный стили

<div data-role="content"> 
      <ul data-role="listview" data-divider-theme="b" data-inset="true" id="two"> 
       <li data-role="list-divider" role="heading"> 
        Divider 
       </li> 
       <li data-theme="c"> 
        <a href="#page4" data-transition="slide"> 
         Element1 
        </a> 
       </li> 
       <li data-theme="c"> 
        <a href="javascript:changePage('1');" data-transition="slide"> 
         Element2 
        </a> 
       </li> 
       <li data-theme="c"> 
        <a href="#page1" data-transition="slide"> 
         Element3 
        </a> 
       </li> 
      </ul> 
     </div> 

, выполнив:

$("#two").append("<li><a href='#page4'>xxx</a></li>"); 
$("#two").listview('refresh'); 

, но затем он ломает стили. Углы больше не округлены и на мобильной странице браузера выглядит как укоротить:

http://imgur.com/a/qyljX

Есть ли у вас какие-то намеки?

ТНХ

+0

Используете ли вы последнюю стабильную версию jQuery mobile (v1.0.1)? В [моем примере] (http://jsfiddle.net/v9fhL/) я не вижу проблемы с рендерингом. – scessor

+0

yep, minified 1.0.1 и jquery 1.6.2 также minified – wonglik

ответ

0

Элемент LI в коде ниже не имеет атрибута данных тему, а у вас есть во всех других LI

$("#two").append("<li><a href='#page4'>xxx</a></li>"); 

Пробовали ли вы что ?:

$("#two").append("<li data-theme='c'><a href='#page4'>xxx</a></li>"); 
+0

Я просто сделал. Но id не помог. – wonglik

+0

Извините, конечно не получается, потому что -theme анализируется во время обычной загрузки страницы JQM. И если вы попытаетесь клонировать существующий элемент LI и заменить его, то добавьте его на страницу? ... – Fabio

+0

Это действительно сработало. Это своего рода прогулка, которую я бы хотел избежать, но похоже, что она работает именно так. – wonglik

Смежные вопросы