【问题标题】:Uncaught TypeError in call to jQuery plugin调用 jQuery 插件时未捕获的 TypeError
【发布时间】:2018-11-16 18:41:16
【问题描述】:

我正在创建一个使用 jQuery 对表格进行分页的插件。最初,我的代码如下所示:

(function($) {
$.paginate = function(options) {

    var settings = $.extend({}, $.fn.paginate.defaults, options);

};

$.paginate.defaults = {
    pageSize: 10,
    nextText: 'Next',
    prevText: 'Prev',
    firstText: '<<'
    lastText: '>>'
}

})(jQuery);

对插件的调用如下:

<script type="text/javascript">
    $(document).ready(function(){
        $(".table").paginate({
            pageSize: 10
        });
    });
</script>

但是,jQuery 没有找到 paginate 函数。你能告诉我哪里出错了吗?

【问题讨论】:

    标签: javascript jquery jquery-plugins


    【解决方案1】:

    你搞砸了$.fn

    插件方法需要分配给$.fn才能使用$(selector).myPlugin()

    $.fn.paginate = function(options) {...
    

    那你之间有不匹配

     $.paginate.defaults
    

    还有

    $.extend({}, $.fn.paginate.defaults
                // ^^ fn here but not above
    

    【讨论】:

    • 同样的问题。我试图改变调用的形式,但它也不起作用:$(function() { $('tabela').paginate({ pageSize: 4 }); });
    • 控制台有错误吗?请注意 'tabela' 是无效的选择器。网上有很多关于如何创建插件甚至工具来生成基本插件代码的资源
    • 就是这样。我修改了选择器并在firstText 字段之后添加了一个“,”,它起作用了。奇怪的是浏览器以前没有显示语法错误。经过这些调整,它奏效了。谢谢。
    猜你喜欢
    • 2014-04-10
    • 1970-01-01
    • 2018-08-28
    • 2014-08-23
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 1970-01-01
    • 2013-07-31
    相关资源
    最近更新 更多