0

真的,我在与淘汰赛 js 斗争了几天。因为我是这项技术的新手。当新数据绑定到 li 时,我无法刷新 ul。下面给出的是我的代码。

 <ul data-role="listview" id="ListSearch" data-divider-theme="b" data-inset="true" >
         <li data-role="list-divider" role="heading">
              Criteria Selected
          </li>
          <!-- ko foreach: Contacts  -->
          <li data-theme="c">
              <a href="#page3" data-transition="slide" data-bind="attr: { title: ContactID }">
                  <span data-bind="text: FirstName + ' ' + LastName + ' (' + Classification +':'+ Position+ ')'"></span>
              </a>
          </li>
          <!-- /ko -->
      </ul>

Jquery Ajax 调用:

    $.ajax({
            url: 'http://localhost:50043/api/contacts/filter',
            type: 'GET',
            dataType: 'jsonp',
            data: { ID: ClassificationPositionid },
            context: this,
            success: function (result) {
                 self.Contacts(result);
                $('#ListSearch').listview("refresh"); //throwing error.

            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                $(".divLoading").hide();
                alert(errorThrown);
            }
        });   

ListSearch 是 UL 的 id。如果我像上面那样给出,那么它会抛出错误。

    Uncaught TypeError: Object [object Object] has no method 'listview' 

如何修复此错误?请帮助我在哪里出错

4

2 回答 2

1

如果您在此处收到错误$('#ListSearch').listview("refresh"); //throwing error.,那么只是以下情况之一:

  • 未加载 jQuery Mobile ListView 插件。
  • jQuery Mobile ListView 插件已加载,但无法正常工作。

检查您的网页中加载了哪些脚本文件(通过 F12 键等浏览器开发工具)以查看加载了哪些脚本。也许那个jQuery文件丢失了?

编辑:

在您的位置上,我会尝试以下操作 - 启动一个新项目,并且只包含 jQuery 和 jQuery Mobile 脚本文件。然后拿代码:

<script type="text/javascript">
    $(function(){
        $('#ListSearch').listview("refresh");
    });    
</script>

看看上述是否失败。如果是这样,那么 jQuery 移动脚本 100% 有问题。尝试从其他地方获取该脚本文件,例如从 jQuery 站点下载它并将其包含在您的项目中。

基本上将代码剥离到最少量,看看什么有效。

于 2013-08-15T07:23:55.800 回答
0

在 jquery ajax 调用中的错误部分之后给出下面的代码,

     complete: function () {                 
                $('#ListSearch').listview('refresh');            
        } 

重要提示:1)不要在移动插件js之后加载jquery 2)不要在body selection中加载任何jquery...请先加载jquery(jquery.min.js,knockout,...),然后再加载移动插件js

于 2013-08-16T10:37:42.057 回答