首页 > 解决方案 > 没有使用 CLI 的 Vuejs 中的“未捕获的 TypeError:不是函数”

问题描述

我想在 vue 中进行滚动,在其中使用列出数据的函数加载更多数据,问题是我只想执行滚动函数并且列表函数正在执行,实际上我正在使用代码已经在其他项目中对我有用,但它一直标记错误

未捕获的类型错误:this.cargarLista 不是函数

mounted() {
    this.cargarLista();
    
    $(window).scroll(function () {
        if ($(window).scrollTop() + $(window).height() == $(document).height()) {
            this.cargarLista();
        }
    });
},

通过简单的逻辑,它应该可以工作,因为我只是在调用该函数。甚至尝试在没有 jQuery 的 vanilla js 中使用滚动功能

window.addEventListener('scroll', function() {
    window_width = w.innerWidth || e.clientWidth || g.clientWidth;
    window_height = w.innerHeight || e.clientHeight || g.clientHeight;
    scrollTop =  window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
    body = document.body;
    html = document.documentElement;
    height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight ); 
    height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight ); 

    if (scrollTop + window_height == height) {
        this.cargarLista();
    }
});

这里有趣的是,正如您在mounted() 中看到的那样,我在滚动之外执行相同的函数,它没有给我任何错误,实际上没有其他地方,因为我在其他情况下使用该函数并且它没有给我仅当我想在滚动条上运行它时出现任何错误

需要注意的是,我没有使用 vue CLI,只使用 .js 文件中的 CDN

如果有人可以帮助我,我将不胜感激,谢谢。

标签: javascriptjqueryvue.jsvuejs2scroll

解决方案


推荐阅读