• Jquery插件写法


    (function ($) {
    
    
        $.fn.scrollPagination = function (options) {
    
            var opts = $.extend($.fn.scrollPagination.defaults, options);
            var target = opts.scrollTarget;
            if (target == null) {
                target = obj;
            }
            opts.scrollTarget = target;
    
            return this.each(function () {
                $.fn.scrollPagination.init($(this), opts);
            });
    
        };
    
        $.fn.stopScrollPagination = function () {
            return this.each(function () {
                $(this).attr('scrollPagination', 'disabled');
            });
    
        };
    
        $.fn.scrollPagination.loadContent = function (obj, opts) {
            var target = opts.scrollTarget;
            var mayLoadContent = $(target).scrollTop() + opts.heightOffset >= $(document).height() - $(target).height();
    
            if (mayLoadContent&& opts.lock) {
                if (opts.beforeLoad != null) {
                    opts.beforeLoad();
                }
                // alert(1);
                //加载数据的时候把lock设为false
                opts.lock = false;
                $(obj).children().attr('rel', 'loaded');
                // alert(2);
                $.ajax({
                    type: 'GET',
                    url: opts.contentPage,
                    data: opts.contentData,
                    async: false,
                    success: function (data) {
                        //$(obj).append(data);
                        //alert(data);
                        //加载成功后把lock设为true,可以进行下一次request
                        opts.lock = true;
                        var objectsRendered = $(obj).children('[rel!=loaded]');
    
                        if (opts.afterLoad != null) {
                            opts.afterLoad(objectsRendered, data, opts);
                        }
                    },
                    dataType: 'json'
                });
            }
    
        };
    
        $.fn.scrollPagination.init = function (obj, opts) {
            var target = opts.scrollTarget;
            $(obj).attr('scrollPagination', 'enabled');
    
            $(target).scroll(function (event) {
                if ($(obj).attr('scrollPagination') == 'enabled') {
                    $.fn.scrollPagination.loadContent(obj, opts);
                }
                else {
                    event.stopPropagation();
                }
            });
    
            $.fn.scrollPagination.loadContent(obj, opts);
    
        };
    
        $.fn.scrollPagination.defaults = {
            'contentPage': null,
            'contentData': {},
            'beforeLoad': null,
            'afterLoad': null,
            'scrollTarget': null,
            'heightOffset': 0,
            'lock': true
        };
    })(jQuery);
  • 相关阅读:
    总结一些关于操作数据库是sql语句还是存储过程问题
    vs2010 创建预编译头 Debug 正常 Release Link Error问题解决
    创建Unicode格式的INI文件
    dos命令记录以及dos下通过进程id查找工作路径
    windows下多字节和宽字节转换
    关于多字节传输导致的乱码问题
    关于mysql数据库字符集优先级问题
    转: Apache开启gzip
    HTML 5 drag and drop 简介
    转: ES6异步编程: co函数库的含义与用法
  • 原文地址:https://www.cnblogs.com/ferron/p/5441385.html
Copyright © 2020-2023  润新知