【问题标题】:jquery mobile no styling on checkboxes after ajax callajax调用后,jquery mobile在复选框上没有样式
【发布时间】:2014-05-10 04:23:44
【问题描述】:

我正在尝试使用 ajax 调用从 json 数组中获取项目列表并将它们放入复选框列表中。这些项目可以正常加载,但它们没有 jquery 移动样式。

            $(document).ready(function(){
            jQuery.support.cors = true;
            $.ajax({
               type: 'GET',
               url: "https://evalue.internationaldelivers.com/service_kb_cust/OCCAPI/Mobile/json/f9496ab3c3764fd0ae201de76c71608f/OCC_GetFiltersObj",
               dataType: "json",
               contentType: 'application/json',
               crossDomain: true,
               async: true,
               cache: false,
               timeout: 30000,
               success: function (data, status, xhr) {
                    for (var i=0, len=data.OCC_FiltersObj_Cust.length; i < len; i++) {
                        $("#filterpanel fieldset").append("<input type='checkbox' name='checkbox-2' id="+data.OCC_FiltersObj_Cust[i].CustomerID+" class='custom'/>")
                        $("#filterpanel fieldset").append("<label for="+data.OCC_FiltersObj_Cust[i].CustomerID+">"+data.OCC_FiltersObj_Cust[i].CustomerName+"</label>")
                    }
                },
                complete: function (xhr, status) {
                    // Indicate complete
                },
                error: function (xhr, status, error) {
                    // Assert an error

                }
            });
        });

谁能帮帮我?

【问题讨论】:

  • 您使用的是哪个 jQM 版本?

标签: javascript jquery ajax json jquery-mobile


【解决方案1】:
      for (var i=0, len=data.OCC_FiltersObj_Cust.length; i < len; i++) {
          $("#filterpanel fieldset").append("<input type='checkbox' name='checkbox-2' id="+data.OCC_FiltersObj_Cust[i].CustomerID+" class='custom'/>")
          $("#filterpanel fieldset").append("<label for="+data.OCC_FiltersObj_Cust[i].CustomerID+">"+data.OCC_FiltersObj_Cust[i].CustomerName+"</label>")
      }

      $("#filterpanel fieldset").trigger("create");

【讨论】:

    【解决方案2】:

    您需要在复选框父元素上调用 trigger("create")

    所以试试这个:

      success: function (data, status, xhr) {
                     for (var i=0, len=data.OCC_FiltersObj_Cust.length; i < len; i++) {
                        $("#filterpanel fieldset").append("<input type='checkbox' name='checkbox-2' id="+data.OCC_FiltersObj_Cust[i].CustomerID+" class='custom'/>")
                        $("#filterpanel fieldset").append("<label for="+data.OCC_FiltersObj_Cust[i].CustomerID+">"+data.OCC_FiltersObj_Cust[i].CustomerName+"</label>")
                      }
    
                      $("[type='checkbox']").closest("div").trigger("create");    
       }
    

    【讨论】:

      猜你喜欢
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      相关资源
      最近更新 更多