从sqlite - jQuery mobile中选择时,重复的autidividers

时间:2014-04-26 13:58:39

标签: javascript jquery sqlite jquery-mobile

transaction.executeSql('SELECT * FROM Table1 ORDER BY date DESC', [],
         function(transaction, result) {
         if (result != null && result.rows != null) {
         for (var i = 0; i < result.rows.length; i++) {
         var row = result.rows.item(i);
         $('#records').append('<li date = "'+row['date']+'" data-rowid2="' + row['Id'] + '"><a href ="#">' + 'test: ' + row['column1'] + '</a></li>').trigger('change');
         }
         }
         },errorHandler);


transaction.executeSql('SELECT * FROM Table2 ORDER BY date DESC', [],
         function(transaction, result) {
         if (result != null && result.rows != null) {
         for (var i = 0; i < result.rows.length; i++) {
         var row = result.rows.item(i);
         $('#records').append('<li date = "'+row['date']+'" data-rowid="' + row['Id'] + '"><a href ="#">'+ 'Test2: ' + row['column1'] +'</a></li>').trigger('change');
         }
         $("#records").listview().listview("refresh");
         }
         },errorHandler);
         },errorHandler,nullHandler);

这是从2个不同表中选择列的一些代码。这些表有两个不同的列,名为date,用于存储日期输入。注意分配给li元素的date属性。我的问题来了:

$(document).on("pageinit", "#mypage", function(){
           $("#records").listview({
                                  autodividers: true,
                                  autodividersSelector: function (li) {
                                  var out = li.attr("date");
                                  return out;
                                  }
                                  }).listview("refresh");
           });

现在,因为日期来自两个不同的表,所以即使它们共享相同的日期,也会创建两个自动分割器。例如,如果table1日期列具有2014-01-02且table2日期列具有2014-01-02,则将为同一日期创建两个单独的分隔符,并且列表元素不会显示在一个下面。这个问题有解决方案吗?

注意:select语句都将结果附加到相同的列表视图,它们只是来自不同的表

编辑:我想我已经找到了问题所在,但我不确定如何解决它。基本上,当我附加那些列表元素时,Table1的东西优先,总是先行。例如,如果我有这样的列表:

Table 1 item
Table 2 item

然后,如果我添加另一个表1项,它将执行此操作:

Table 1 item
Table 1 item
Table 2 item

将表2项目从其原始位置移位。无论如何要解决这个问题吗?

0 个答案:

没有答案