javascript - 使用 jquery mobile 的动态 ListView

标签 javascript listview jquery-mobile

我在刷新 jquery 移动 ListView 时遇到问题。

这段代码工作正常:

$(document).bind( "pagebeforechange", function( e, data ) {

   // Generating a dynamic list
       for(var i=0;i<list.length;i++){
           var link = '<li><a href="#">'+list[i].name+'</a></li>';
           $("#listview").append(link);
       }

   // Listview refresh
   $("#myPage").on('pagebeforeshow', function() {
       try {
           $("#listview").listview('refresh');
       } catch (e) {
           $("#listview").listview();
       }
   });

   $.mobile.changePage($(#myPage), {
        transition:"slide",
        dataUrl:url,
        allowSamePageTransition:true,
        reverse:reverse
    });
    e.preventDefault();

});

但是,我需要动态添加一个图标来列出用户收藏夹中的 View 项目。我使用一个函数,该函数通过对本地数据库的请求返回一个数组。

$(document).bind( "pagebeforechange", function( e, data ) {

  getFavs(function(favsArray){       

     // Generating dynamic list with image
       for(var i=0;i<list.length;i++){
           favImg = "";
           if(favsArray.indexOf(list[i].id) !== -1){
               favImg = '<img src="images/star-36-black.png" class="ui-li-icon" />';
           }               
           var link = '<li><a href="#">'+favImg+list[i].name+'</a></li>';
           $("#listview").append(link);
       }

       // Listview refresh
       $("#myPage").on('pagebeforeshow', function() {
          try {
              $("#listview").listview('refresh');
          } catch (e) {
              $("#listview").listview();
          }
       });

  });

   $.mobile.changePage($(#myPage), {
        transition:"slide",
        dataUrl:url,
        allowSamePageTransition:true,
        reverse:reverse
    });
    e.preventDefault();

});

在第二种情况下,不应用Listview()。我不明白为什么第二个选项如此不同以至于它破坏了 Listview()...

最佳答案

我发现了类似的帖子here ,尽管解决方案不同。对于第二个选项,我只需删除对 pagebeforshow 的绑定(bind):

   // Listview refresh
      try {
          $("#listview").listview('refresh');
      } catch (e) {
          $("#listview").listview();
      }

但是,我还不明白为什么第一个选项需要绑定(bind)到 pagebeforeshow,而它会破坏第二个选项中的代码...

关于javascript - 使用 jquery mobile 的动态 ListView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15449028/

相关文章:

javascript - .closest() 函数不适用于输入

android - 无法使我的 ListView 可选,按下时元素不突出显示

javascript - 如何以易于访问的方式隐藏 jQuery Mobile 站点中的所有标签?

android - 在android中使用按钮删除 ListView 项目

android - 将闪烁添加到自定义 ListView 项目?

php - 有没有办法从 php 调用移动应用程序

jquery-mobile - jQueryMobile 数据绑定(bind)选项

runApplet 方法中参数的 Javascript args

javascript - HTML无法在Github Pages中在线链接Css,但在Linux本地无法链接

javascript - jquery dblclcik 事件没有给出被点击的元素