jquery扩展

作者: wppeng | 来源:发表于2018-05-15 15:27 被阅读0次
    • 监听div大小改变事件
    //监听div大小变化
    (function($, h, c) {
        var a = $([]),
        e = $.resize = $.extend($.resize, {}),
        i,
        k = "setTimeout",
        j = "resize",
        d = j + "-special-event",
        b = "delay",
        f = "throttleWindow";
        e[b] = 250;
        e[f] = true;
        $.event.special[j] = {
            setup: function() {
                if (!e[f] && this[k]) {
                    return false;
                }
                var l = $(this);
                a = a.add(l);
                $.data(this, d, {
                    w: l.width(),
                    h: l.height()
                });
                if (a.length === 1) {
                    g();
                }
            },
            teardown: function() {
                if (!e[f] && this[k]) {
                    return false;
                }
                var l = $(this);
                a = a.not(l);
                l.removeData(d);
                if (!a.length) {
                    clearTimeout(i);
                }
            },
            add: function(l) {
                if (!e[f] && this[k]) {
                    return false;
                }
                var n;
                function m(s, o, p) {
                    var q = $(this),
                    r = $.data(this, d);
                    r.w = o !== c ? o: q.width();
                    r.h = p !== c ? p: q.height();
                    n.apply(this, arguments);
                }
                if ($.isFunction(l)) {
                    n = l;
                    return m;
                } else {
                    n = l.handler;
                    l.handler = m;
                }
            }
        };
        function g() {
            i = h[k](function() {
                a.each(function() {
                    var n = $(this),
                    m = n.width(),
                    l = n.height(),
                    o = $.data(this, d);
                    if (m !== o.w || l !== o.h) {
                        n.trigger(j, [o.w = m, o.h = l]);
                    }
                });
                g();
            },
            e[b]);
        }
    })(jQuery, this);
    
    //调用方法
    $("#main").resize(function(){
        //当id为main的div大小变化时的处理函数写在这里.....
        //当然了#main只不过是id选择器,你也可以换成任何jquery的选择器......
    });
    

    相关文章

      网友评论

        本文标题:jquery扩展

        本文链接:https://www.haomeiwen.com/subject/ztzirftx.html