Добавление html-элемента с помощью ajax + jquery mobile - PullRequest
0 голосов
/ 16 марта 2012

все. У меня есть вопрос загрузки ajax и jquery-mobile.

  api = 
    update: ->
    console.log "updated"
    $.ajax
      dataType: "jsonp"
      url: "http://localhost:3004/videos.json"
      success: (data) =>
        if data
          data.forEach (elem) =>
            video_id = elem.video_id
            embed_id = elem._id
            $("#play_list").append "
            <ul data-role='listview' data-theme='a'>
              <li>hello</li>
              </ul>
             "
   t = api.update()

И я пытаюсь вставить этот код в HTML-файл.

  <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"/>
  <link href="bootstrap/css/bootstrap.responsive.css" rel="stylesheet"/>
  <body>
   <div id="play_list"></div>
  </body>
<script>
 head.js(
 "lib/jquery.js",
 "lib/jquery.mobile-1.0.1.min.js",
 "http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.1.6/underscore-min.js", 
 "http://cdnjs.cloudflare.com/ajax/libs/json2/20110223/json2.js", 
 "http://cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.1/backbone-min.js",
  "app.js"
 );
</script>
</html>

Выведенный HTML-код

<ul data-role='listview' data-theme='a'>
 <li>hello</li>
</ul>

Но он не отформатирован в стиле jquery-mobile. Это просто выводит нормальный стиль HTML. Я хочу вывести как на картинке http://brooky.cc/wp-content/uploads/2011/04/list_view1.png

Пожалуйста, помогите.

Заранее спасибо.

1 Ответ

1 голос
/ 16 марта 2012

Из тонкой инструкции :

Вызов плагина просмотра списка

Вы можете напрямую вызвать плагин listview для любого селектора, как и для любого плагина jQuery:

$('#mylist').listview();

Библиотека автоматически вызывает listview() во всех списках, которые находятся на странице, когда все запускается, AFAIK это в основном делает это:

$('[data-role=listview]').listview();

Если вы добавляете новый список, вам просто нужно .listview() it:

success: (data) =>
  if data
    data.forEach (elem) =>
      video_id = elem.video_id
      embed_id = elem._id
      ul = $("
        <ul data-role='listview' data-theme='a'>
          <li>hello</li>
        </ul>
      ")
      $("#play_list").append ul
      ul.listview()

Демо: http://jsfiddle.net/ambiguous/pMF4G/

Вы также можете добавить их все сразу:

success: (data) =>
  if data
    uls = $()
    data.forEach (elem) =>
      video_id = elem.video_id
      embed_id = elem._id
      uls = uls.push("
        <ul data-role='listview' data-theme='a'>
          <li>hello</li>
        </ul>
      ")
    $("#play_list").append uls
    uls.listview()

Демо: http://jsfiddle.net/ambiguous/BdqeC/

...