2012-02-10 40 views
1

我在移动应用程序,我想创建复选框的动态列表,传递一些数据到另一个功能。我想复选框这个名单看起来像移动应用程序jquery动态复选框与数据传递和移动视图

http://jquerymobile.com/demos/1.0a4.1/docs/forms/forms-checkboxes.html

,而不是简单的链接...

这里是我的代码

 for (i = 0; i < len; i += 1) { 
      row = resultflatname.rows.item(i); 

      if (row.flatdescription == flatdescription) { 
       if (row.receiptno == 0){ 
         items.push('<input type="checkbox" name="code_'+ i +'" id="code_'+ i +'" value="' + row.amount + '" previous="' + row.pastpayments + '" barcode="' + row.barcode + '" todayp="' + row.todaypayments + '"/><label for="code_'+ i +'">' + row.period +'..........'+ row.amount+'</label></br>'); 
       allbarcode[i] = row.barcode; 
       previouspayments = previouspayments + row.pastpayments; 
       previouspayments = previouspayments.toFixed(2); 
       sofeilon = sofeilon + row.amount; 
       sofeilon = sofeilon.toFixed(2); 
       total = total + row.amount - row.pastpayments; 
       total = total.toFixed(2); 

       } else { 

       if ((row.receiptno > 0) && (row.todaypayments < row.amount - row.pastpayments)){ 
         items.push('<input type="checkbox" name="code_'+ i +'" id="code_'+ i +'" value="' + row.amount + '" previous="' + row.pastpayments + '" barcode="' + row.barcode + '" todayp="' + row.todaypayments + '"/><label for="code_'+ i +'">' + row.period +'..........'+ row.amount+'</label></br>'); 
       allbarcode[i] = row.barcode; 
       previouspayments = previouspayments + row.pastpayments; 
       previouspayments = previouspayments.toFixed(2); 
       sofeilon = sofeilon + row.amount; 
       sofeilon = sofeilon.toFixed(2); 
       total = total + row.amount - row.pastpayments; 
       total = total.toFixed(2); 

       } 
       } 
      } 
      list.html(items.join('\n')); 

     } 

回答

0

而不是推锚元素添加到数组并将它们加入到列表项元素中,然后再推入阵列:

items.push('<li><input type="checkbox" name="code_'+ i +'" id="code_'+ i +'" value="' + row.amount + '" previous="' + row.pastpayments + '" barcode="' + row.barcode + '" todayp="' + row.todaypayments + '"/><label for="code_'+ i +'">' + row.period +'..........'+ row.amount+'</label></li>'); 

然后,当你加入你的表添加<ul>开始和结束标记:

list.html('<ul data-role="listview">' + items.join('') + '</ul>').trigger('create'); 

.trigger('create');很重要,因为它将使jQuery Mobile框架初始化你刚才添加到DOM新listview部件。

这已经有一段时间,因为我用.trigger('create'),所以我不记得,如果你可以调用它的父元素(我敢肯定,你可以),或者如果你将不得不调用之前,必须选择新<ul>元素.trigger('create')

list.html('<ul data-role="listview">' + items.join('') + '</ul>').children().trigger('create');