【问题标题】:Infinite ajax scroll did not working in Django无限 ajax 滚动在 Django 中不起作用
【发布时间】:2017-03-27 16:41:33
【问题描述】:

我正在尝试在我的项目中使用无限 ajax 滚动插件。我只是关注了官方网站并包含了必要的 javascript 文件。以下是我的代码:

<div class="row">
   <div class="col-lg-4">
       <div class="bootstrap-card">
       <img src="{% static 'images/1.jpg' %}" class="img-responsive img-rounded" alt="card imag">
       <div class="overlay">
       <a class="info" href="#">View Details</a>
       </div>
      </div>
   </div>

    <div class="col-lg-4">
        <div class="bootstrap-card">
        <img src="{% static 'images/1.jpg' %}" class="img-responsive img-rounded" alt="card imag">
        <div class="overlay">
        <a class="info" href="#">View Details</a>
        </div>
        </div>
    </div>

    <div class="col-lg-4">
       <div class="bootstrap-card">
       <img src="{% static 'images/1.jpg' %}" class="img-responsive img-rounded" alt="card imag">
       <div class="overlay">
       <a class="info" href="#">View Details</a>
       </div>
       </div>
    </div>
</div>

<script src="{% static 'hw1/js/callback.js' %}"></script>
<script src="{% static 'hw1/js/jquery-ias.min.js' %}"></script>

<div id="pagination">
    <a href="page2.html" class="next">next</a>
</div>

<script>
    $(document).ready(function() {
      var ias = jQuery.ias({
        container: '.row',
        item: '.col-lg-4',
        pagination: '#pagination',
        next: '.next',
        delay: 1250
      });
    });

    ias.extension(new IASSpinnerExtension());
    ias.extension(new IASTriggerExtension({offset: 2}));
    ias.extension(new IASNoneLeftExtension({text: "You reached the end"}));
</script>

所以这里 page2.html 是另一个页面,它确实存在。

那么有谁知道错误信息的原因:

(index):244 Uncaught ReferenceError: ias is not defined(...)(anonymous function) @ (index):244 jquery-3.1.1.min.js:2 jQuery.Deferred 异常:jQuery.ias 不是函数 TypeError:jQuery.ias 不是函数 在 HTML 文档。 (http://localhost:8000/:235:24) 在 j (http://localhost:8000/static/hw1/js/jquery-3.1.1.min.js:2:29948) 在 k (http://localhost:8000/static/hw1/js/jquery-3.1.1.min.js:2:30262) 未定义

【问题讨论】:

    标签: javascript jquery django infinite-scroll jquery-ias


    【解决方案1】:

    您有范围问题。您在 jQuery ready 回调中定义了 var ias,但试图在该回调之外引用 ias 变量。在该回调之外,ias 变量不存在。此外,因为回调是异步的,所以在 DOM 完全加载之前不会调用回调。这意味着您对 ias.extension() 的调用发生在页面甚至有机会加载之前,这就是 ready 回调首先存在的原因。

    要解决此问题,请将您对 ias.extension() 的调用也放入回调中,以便它们都在 jquery 和 ias 已初始化的同一范围内。

    $(document).ready(function() {
      var ias = jQuery.ias({
        container: '.row',
        item: '.col-lg-4',
        pagination: '#pagination',
        next: '.next',
        delay: 1250
      });
    
      ias.extension(new IASSpinnerExtension());
      ias.extension(new IASTriggerExtension({offset: 2}));
      ias.extension(new IASNoneLeftExtension({text: "You reached the end"}));
    });
    

    【讨论】:

    • 您好,感谢您的解释。但是,我仍然遇到同样的错误。它似乎总是在寻找 jquery-3.1.1.min.js 中定义的函数。错误消息是:jquery-3.1.1.min.js:2 jQuery.Deferred exception: jQuery.ias is not a function TypeError: jQuery.ias is not a function at HTMLDocument. (localhost:8000/:235:24) at j (localhost:8000/static/hw1/js/jquery-3.1.1.min.js:2:29948) 在 k (localhost:8000/static/hw1/js/jquery-3.1.1.min.js:2:30262)
    • @user2970089 localhost:8000/static/hw1/js/jquery-ias.min.js 返回 javascript 还是给出错误?如果它给出错误,您的静态文件可能没有正确设置,或者您的网址中有错字。
    • 它返回我的javascript。我检查了没有错字,我也使用类似的东西来添加其他 javascript 文件。所以我很困惑为什么找不到这个功能......
    • 它显示的另一个错误消息是:jquery-ias.min.js:13 Uncaught ReferenceError: jQuery is not defined at localhost:8000/static/hw1/js/… function) @ jquery-ias.min.js:13
    • 那么插件好像有bug。在他们的 github 页面上向他们报告。
    猜你喜欢
    • 2013-07-05
    • 2015-07-25
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-14
    • 2018-10-22
    相关资源
    最近更新 更多