zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    C基础之移位操作
    实现itoa()
    Python的time模块的clock方法在不同平台的效果不同
    __stdcall与__cdecl之区别浅析及相关知识
    Python 字典 dictionary changed size during iteration
    Windows下printf输出long long类型
    inotify也会爆棚
    一条对“失控的腾讯帝国:企鹅无法把控手机市场”的评论
    imfunny程序员的增量发展
    程序员第一定律:关于技能和收入
  • 原文地址:https://www.cnblogs.com/ferron/p/5441385.html
Copyright © 2011-2022 走看看