<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    mashiguang

    小馬快跑

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      20 隨筆 :: 0 文章 :: 60 評論 :: 0 Trackbacks
    這個是ie6的bug,并非boxy的問題。在ie6下,select元素的zindex最大,select元素會透過boxy的彈出層顯示在其上面。
    這里用一個iframe擋住boxy彈出層下的select,使用時只要將useIframe置為true即可,源碼如下:
    (jquery.boxy.js并不好用,很多jquery的彈出層插件都解決了ie6的這個問題)

    /**
     * Boxy 0.1.4 - Facebook-style dialog, with frills
     *
     * (c) 2008 Jason Frame
     * Licensed under the MIT License (LICENSE)
     
    */
     
    /*
     * jQuery plugin
     *
     * Options:
     *   message: confirmation message for form submit hook (default: "Please confirm:")
     * 
     * Any other options - e.g. 'clone' - will be passed onto the boxy constructor (or
     * Boxy.load for AJAX operations)
     
    */
    jQuery.fn.boxy 
    = function(options) {
        options 
    = options || {};
        
    return this.each(function() {      
            
    var node = this.nodeName.toLowerCase(), self = this;
            
    if (node == 'a') {
                jQuery(
    this).click(function() {
                    
    var active = Boxy.linkedTo(this),
                        href 
    = this.getAttribute('href'),
                        localOptions 
    = jQuery.extend({actuator: this, title: this.title}, options);
                        
                    
    if (active) {
                        active.show();
                    } 
    else if (href.indexOf('#') >= 0) {
                        
    var content = jQuery(href.substr(href.indexOf('#'))),
                            newContent 
    = content.clone(true);
                        content.remove();
                        localOptions.unloadOnHide 
    = false;
                        
    new Boxy(newContent, localOptions);
                    } 
    else { // fall back to AJAX; could do with a same-origin check
                        if (!localOptions.cache) localOptions.unloadOnHide = true;
                        Boxy.load(
    this.href, localOptions);
                    }
                    
                    
    return false;
                });
            } 
    else if (node == 'form') {
                jQuery(
    this).bind('submit.boxy', function() {
                    Boxy.confirm(options.message 
    || 'Please confirm:', function() {
                        jQuery(self).unbind('submit.boxy').submit();
                    });
                    
    return false;
                });
            }
        });
    };

    //
    //
     Boxy Class

    function Boxy(element, options) {
        
        
    this.boxy = jQuery(Boxy.WRAPPER);
        jQuery.data(
    this.boxy[0], 'boxy', this);
        
        
    this.visible = false;
        
    this.options = jQuery.extend({}, Boxy.DEFAULTS, options || {});
        
        //只在ie6下useIframe才起作用
        this.options.useIframe = (this.options.useIframe && jQuery.browser.msie && jQuery.browser.version < 7);

        
    if (this.options.useIframe) {
            
    this.options = jQuery.extend(this.options, {modal: true});
        }

        
        
    if (this.options.modal) {
            
    this.options = jQuery.extend(this.options, {center: true, draggable: false});
        }
        
        
    // options.actuator == DOM element that opened this boxy
        // association will be automatically deleted when this boxy is remove()d
        if (this.options.actuator) {
            jQuery.data(
    this.options.actuator, 'active.boxy', this);
        }
        
        
    this.setContent(element || "<div></div>");
        
    this._setupTitleBar();
        
        
    this.boxy.css('display', 'none').appendTo(document.body);
        
    this.toTop();

        
    if (this.options.fixed) {
            
    if (jQuery.browser.msie && jQuery.browser.version < 7) {
                
    this.options.fixed = false// IE6 doesn't support fixed positioning
            } else {
                
    this.boxy.addClass('fixed');
            }
        }
        
        
    if (this.options.center && Boxy._u(this.options.x, this.options.y)) {
            
    this.center();
        } 
    else {
            
    this.moveTo(
                Boxy._u(
    this.options.x) ? this.options.x : Boxy.DEFAULT_X,
                Boxy._u(
    this.options.y) ? this.options.y : Boxy.DEFAULT_Y
            );
        }
        
        
    if (this.options.show) this.show();

    };

    Boxy.EF 
    = function() {};

    jQuery.extend(Boxy, {
        
        WRAPPER:    
    "<table cellspacing='0' cellpadding='0' border='0' class='boxy-wrapper'>" +
                    
    "<tr><td class='top-left'></td><td class='top'></td><td class='top-right'></td></tr>" +
                    
    "<tr><td class='left'></td><td class='boxy-inner'></td><td class='right'></td></tr>" +
                    
    "<tr><td class='bottom-left'></td><td class='bottom'></td><td class='bottom-right'></td></tr>" +
                    
    "</table>",
        
        DEFAULTS: {
            title:                  
    null,           // titlebar text. titlebar will not be visible if not set.
            closeable:              true,           // display close link in titlebar?
            draggable:              true,           // can this dialog be dragged?
            clone:                  false,          // clone content prior to insertion into dialog?
            actuator:               null,           // element which opened this dialog
            center:                 true,           // center dialog in viewport?
            show:                   true,           // show dialog immediately?
            modal:                  false,          // make dialog modal?
            fixed:                  true,           // use fixed positioning, if supported? absolute positioning used otherwise
            closeText:              "<img src='images/img_bgArea02.gif' />",      // text to use for default close link
            unloadOnHide:           false,          // should this dialog be removed from the DOM after being hidden?
            clickToFront:           false,          // bring dialog to foreground on any click (not just titlebar)?
            behaviours:             Boxy.EF,        // function used to apply behaviours to all content embedded in dialog.
            afterDrop:              Boxy.EF,        // callback fired after dialog is dropped. executes in context of Boxy instance.
            afterShow:              Boxy.EF,        // callback fired after dialog becomes visible. executes in context of Boxy instance.
            afterHide:              Boxy.EF,        // callback fired after dialog is hidden. executed in context of Boxy instance.
            beforeUnload:           Boxy.EF,         // callback fired after dialog is unloaded. executed in context of Boxy instance.
            useIframe:                false            //支持iframe遮罩層,解決ie6下select z-index最高的bug,只在ie6下時才用的到
        },
        
        DEFAULT_X:          
    50,
        DEFAULT_Y:          
    50,
        zIndex:             
    1337,
        dragConfigured:     
    false// only set up one drag handler for all boxys
        resizeConfigured:   false,
        dragging:           
    null,
        
        
    // load a URL and display in boxy
        // url - url to load
        // options keys (any not listed below are passed to boxy constructor)
        //   type: HTTP method, default: GET
        //   cache: cache retrieved content? default: false
        //   filter: jQuery selector used to filter remote content
        load: function(url, options) {
            
            options 
    = options || {};
            
            
    var ajax = {
                url: url, type: 'GET', dataType: 'html', cache: 
    false, success: function(html) {
                    html 
    = jQuery(html);
                    
    if (options.filter) html = jQuery(options.filter, html);
                    
    new Boxy(html, options);
                }
            };
            
            jQuery.each(['type', 'cache'], 
    function() {
                
    if (this in options) {
                    ajax[
    this= options[this];
                    
    delete options[this];
                }
            });
            
            jQuery.ajax(ajax);
            
        },
        
        
    // allows you to get a handle to the containing boxy instance of any element
        // e.g. <a href='#' onclick='alert(Boxy.get(this));'>inspect!</a>.
        // this returns the actual instance of the boxy 'class', not just a DOM element.
        // Boxy.get(this).hide() would be valid, for instance.
        get: function(ele) {
            
    var p = jQuery(ele).parents('.boxy-wrapper');
            
    return p.length ? jQuery.data(p[0], 'boxy') : null;
        },
        
        
    // returns the boxy instance which has been linked to a given element via the
        // 'actuator' constructor option.
        linkedTo: function(ele) {
            
    return jQuery.data(ele, 'active.boxy');
        },
        
        
    // displays an alert box with a given message, calling optional callback
        // after dismissal.
        alert: function(message, callback, options) {
            
    return Boxy.ask(message, ['確定'], callback, options);
        },
        
        
    // displays an alert box with a given message, calling after callback iff
        // user selects OK.
        confirm: function(message, after, options) {
            
    return Boxy.ask(message, ['確定', '取消'], function(response) {
                
    if (response == '確定') after();
            }, options);
        },
        
        
    // asks a question with multiple responses presented as buttons
        // selected item is returned to a callback method.
        // answers may be either an array or a hash. if it's an array, the
        // the callback will received the selected value. if it's a hash,
        // you'll get the corresponding key.
        ask: function(question, answers, callback, options) {
            
            options 
    = jQuery.extend({modal: true, closeable: false},
                                    options 
    || {},
                                    {show: 
    true, unloadOnHide: true});
            
            
    var body = jQuery('<div></div>').append(jQuery('<div class="question"></div>').html(question));
            
            
    // ick
            var map = {}, answerStrings = [];
            
    if (answers instanceof Array) {
                
    for (var i = 0; i < answers.length; i++) {
                    map[answers[i]] 
    = answers[i];
                    answerStrings.push(answers[i]);
                }
            } 
    else {
                
    for (var k in answers) {
                    map[answers[k]] 
    = k;
                    answerStrings.push(answers[k]);
                }
            }
            
            
    var buttons = jQuery('<form class="answers"></form>');
            buttons.html(jQuery.map(answerStrings, 
    function(v) {
                
    return "<input type='button' value='" + v + "' />";
            }).join(' '));
            
            jQuery('input[type
    =button]', buttons).click(function() {
                
    var clicked = this;
                Boxy.get(
    this).hide(function() {
                    
    if (callback) callback(map[clicked.value]);
                });
            });
            
            body.append(buttons);
            
            
    new Boxy(body, options);
            
        },
        
        
    // returns true if a modal boxy is visible, false otherwise
        isModalVisible: function() {
            
    return jQuery('.boxy-modal-blackout').length > 0;
        },
        
        _u: 
    function() {
            
    for (var i = 0; i < arguments.length; i++)
                
    if (typeof arguments[i] != 'undefined') return false;
            
    return true;
        },
        
        _handleResize: 
    function(evt) {
            
    var d = jQuery(document);
            jQuery('.boxy
    -modal-blackout').css('display', 'none').css({
                width: d.width(), height: d.height()
            }).css('display', 'block');
        },
        
        _handleDrag: 
    function(evt) {
            
    var d;
            
    if (d = Boxy.dragging) {
                d[
    0].boxy.css({left: evt.pageX - d[1], top: evt.pageY - d[2]});
            }
        },
        
        _nextZ: 
    function() {
            
    return Boxy.zIndex++;
        },
        
        _viewport: 
    function() {
            
    var d = document.documentElement, b = document.body, w = window;
            
    return jQuery.extend(
                jQuery.browser.msie 
    ?
                    { left: b.scrollLeft 
    || d.scrollLeft, top: b.scrollTop || d.scrollTop } :
                    { left: w.pageXOffset, top: w.pageYOffset },
                
    !Boxy._u(w.innerWidth) ?
                    { width: w.innerWidth, height: w.innerHeight } :
                    (
    !Boxy._u(d) && !Boxy._u(d.clientWidth) && d.clientWidth != 0 ?
                        { width: d.clientWidth, height: d.clientHeight } :
                        { width: b.clientWidth, height: b.clientHeight }) );
        }

    });

    Boxy.prototype 
    = {
        
        
    // Returns the size of this boxy instance without displaying it.
        // Do not use this method if boxy is already visible, use getSize() instead.
        estimateSize: function() {
            
    this.boxy.css({visibility: 'hidden', display: 'block'});
            
    var dims = this.getSize();
            
    this.boxy.css('display', 'none').css('visibility', 'visible');
            
    return dims;
        },
                    
        
    // Returns the dimensions of the entire boxy dialog as [width,height]
        getSize: function() {
            
    return [this.boxy.width(), this.boxy.height()];
        },
        
        
    // Returns the dimensions of the content region as [width,height]
        getContentSize: function() {
            
    var c = this.getContent();
            
    return [c.width(), c.height()];
        },
        
        
    // Returns the position of this dialog as [x,y]
        getPosition: function() {
            
    var b = this.boxy[0];
            
    return [b.offsetLeft, b.offsetTop];
        },
        
        
    // Returns the center point of this dialog as [x,y]
        getCenter: function() {
            
    var p = this.getPosition();
            
    var s = this.getSize();
            
    return [Math.floor(p[0+ s[0/ 2), Math.floor(p[1+ s[1/ 2)];
        },
                    
        
    // Returns a jQuery object wrapping the inner boxy region.
        // Not much reason to use this, you're probably more interested in getContent()
        getInner: function() {
            
    return jQuery('.boxy-inner', this.boxy);
        },
        
        
    // Returns a jQuery object wrapping the boxy content region.
        // This is the user-editable content area (i.e. excludes titlebar)
        getContent: function() {
            
    return jQuery('.boxy-content', this.boxy);
        },
        
        
    // Replace dialog content
        setContent: function(newContent) {
            newContent 
    = jQuery(newContent).css({display: 'block'}).addClass('boxy-content');
            
    if (this.options.clone) newContent = newContent.clone(true);
            
    this.getContent().remove();
            
    this.getInner().append(newContent);
            
    this._setupDefaultBehaviours(newContent);
            
    this.options.behaviours.call(this, newContent);
            
    return this;
        },
        
        
    // Move this dialog to some position, funnily enough
        moveTo: function(x, y) {
            
    this.moveToX(x).moveToY(y);
            
    return this;
        },
        
        
    // Move this dialog (x-coord only)
        moveToX: function(x) {
            
    if (typeof x == 'number') this.boxy.css({left: x});
            
    else this.centerX();
            
    return this;
        },
        
        
    // Move this dialog (y-coord only)
        moveToY: function(y) {
            
    if (typeof y == 'number') this.boxy.css({top: y});
            
    else this.centerY();
            
    return this;
        },
        
        
    // Move this dialog so that it is centered at (x,y)
        centerAt: function(x, y) {
            
    var s = this[this.visible ? 'getSize' : 'estimateSize']();
            
    if (typeof x == 'number') this.moveToX(x - s[0/ 2);
            
    if (typeof y == 'number') this.moveToY(y - s[1/ 2);
            
    return this;
        },
        
        centerAtX: 
    function(x) {
            
    return this.centerAt(x, null);
        },
        
        centerAtY: 
    function(y) {
            
    return this.centerAt(null, y);
        },
        
        
    // Center this dialog in the viewport
        // axis is optional, can be 'x', 'y'.
        center: function(axis) {
            
    var v = Boxy._viewport();
            
    var o = this.options.fixed ? [00] : [v.left, v.top];
            
    if (!axis || axis == 'x') this.centerAt(o[0+ v.width / 2null);
            
    if (!axis || axis == 'y') this.centerAt(null, o[1+ v.height / 2);
            
    return this;
        },
        
        
    // Center this dialog in the viewport (x-coord only)
        centerX: function() {
            
    return this.center('x');
        },
        
        
    // Center this dialog in the viewport (y-coord only)
        centerY: function() {
            
    return this.center('y');
        },
        
        
    // Resize the content region to a specific size
        resize: function(width, height, after) {
            
    if (!this.visible) return;
            
    var bounds = this._getBoundsForResize(width, height);
            
    this.boxy.css({left: bounds[0], top: bounds[1]});
            
    this.getContent().css({width: bounds[2], height: bounds[3]});
            
    if (after) after(this);
            
    return this;
        },
        
        
    // Tween the content region to a specific size
        tween: function(width, height, after) {
            
    if (!this.visible) return;
            
    var bounds = this._getBoundsForResize(width, height);
            
    var self = this;
            
    this.boxy.stop().animate({left: bounds[0], top: bounds[1]});
            
    this.getContent().stop().animate({width: bounds[2], height: bounds[3]}, function() {
                
    if (after) after(self);
            });
            
    return this;
        },
        
        
    // Returns true if this dialog is visible, false otherwise
        isVisible: function() {
            
    return this.visible;    
        },
        
        
    // Make this boxy instance visible
        show: function() {
            
    if (this.visible) return;
            
    if (this.options.modal) {
                
    var self = this;
                
    if (!Boxy.resizeConfigured) {
                    Boxy.resizeConfigured 
    = true;
                    jQuery(window).resize(
    function() { Boxy._handleResize(); });
                }
                
    this.modalBlackout = jQuery('<div class="boxy-modal-blackout"></div>')
                    .css({zIndex: Boxy._nextZ(),
                          opacity: 
    0,
                          width: jQuery(document).width(),
                          height: jQuery(document).height()})
                    .appendTo(document.body);
                
    this.toTop();
                
    if (this.options.closeable) {
                    jQuery(document.body).bind('keypress.boxy', 
    function(evt) {
                        
    var key = evt.which || evt.keyCode;
                        
    if (key == 27) {
                            self.hide();
                            jQuery(document.body).unbind('keypress.boxy');
                        }
                    });
                }
            }
            
    this.boxy.stop().css({opacity: 1}).show();
            
    this.visible = true;
            
    this._fire('afterShow');
            this.center();
            
    if (this.options.useIframe == true) {
                
    this.temp_iframe = jQuery("<iframe class='bg_iframe' src='javascript:void(0);' scrolling='no' frameborder='0' style='position: absolute;'></iframe>");
                
    this.temp_iframe.width(this.getSize()[0]);
                
    this.temp_iframe.height(this.getSize()[1]);
                
    this.temp_iframe[0].zIndex =  - 1;
                var v = Boxy._viewport();
                this.temp_iframe.css("top",this.getPosition()[1]);
                
    this.temp_iframe.css("left",this.getPosition()[0]);
                jQuery(document.body).append(this.temp_iframe);
                this.toTop();
            }

            
    return this;
        },
        //彈層大小會改變時會用到這個方法,Boxy.get(this).auto_resize();
        auto_resize:function(){
            
    if (this.options.useIframe == true) {
                
    this.temp_iframe.width(this.getSize()[0]);
                
    this.temp_iframe.height(this.getSize()[1]);
            }
        },

        
        
    // Hide this boxy instance
        hide: function(after) {
            
    if (!this.visible) return;
            
    var self = this;
            
    if (this.options.modal) {
                jQuery(document.body).unbind('keypress.boxy');
                
    this.modalBlackout.animate({opacity: 0}, function() {
                    jQuery(
    this).remove();
                });
            }
            
    this.boxy.stop().animate({opacity: 0}, 300function() {
                self.boxy.css({display: 'none'});
                self.visible 
    = false;
                self._fire('afterHide');
                
    if (after) after(self);
                
    if (self.options.unloadOnHide) self.unload();
            });
            if (this.options.useIframe == true) {
                jQuery("iframe").remove(".bg_iframe"); 
            }

            
    return this;
        },
        
        toggle: 
    function() {
            
    this[this.visible ? 'hide' : 'show']();
            
    return this;
        },
        
        hideAndUnload: 
    function(after) {
            
    this.options.unloadOnHide = true;
            
    this.hide(after);
            
    return this;
        },
        
        unload: 
    function() {
            
    this._fire('beforeUnload');
            
    this.boxy.remove();
            
    if (this.options.actuator) {
                jQuery.data(
    this.options.actuator, 'active.boxy', false);
            }
        },
        
        
    // Move this dialog box above all other boxy instances
        toTop: function() {
            
    this.boxy.css({zIndex: Boxy._nextZ()});
            
    return this;
        },
        
        
    // Returns the title of this dialog
        getTitle: function() {
            
    return jQuery('> .title-bar h2', this.getInner()).html();
        },
        
        
    // Sets the title of this dialog
        setTitle: function(t) {
            jQuery('
    > .title-bar h2', this.getInner()).html(t);
            
    return this;
        },
        
        
    //
        // Don't touch these privates
        
        _getBoundsForResize: 
    function(width, height) {
            
    var csize = this.getContentSize();
            
    var delta = [width - csize[0], height - csize[1]];
            
    var p = this.getPosition();
            
    return [Math.max(p[0- delta[0/ 20),
                    Math.max(p[
    1- delta[1/ 20), width, height];
        },
        
        _setupTitleBar: 
    function() {
            
    if (this.options.title) {
                
    var self = this;
                
    var tb = jQuery("<div class='title-bar'></div>").html("<h2>" + this.options.title + "</h2>");
                
    if (this.options.closeable) {
                    tb.append(jQuery(
    "<a href='#' class='close'></a>").html(this.options.closeText));
                }
                
    if (this.options.draggable) {
                    tb[
    0].onselectstart = function() { return false; }
                    tb[
    0].unselectable = 'on';
                    tb[
    0].style.MozUserSelect = 'none';
                    
    if (!Boxy.dragConfigured) {
                        jQuery(document).mousemove(Boxy._handleDrag);
                        Boxy.dragConfigured 
    = true;
                    }
                    tb.mousedown(
    function(evt) {
                        self.toTop();
                        Boxy.dragging 
    = [self, evt.pageX - self.boxy[0].offsetLeft, evt.pageY - self.boxy[0].offsetTop];
                        jQuery(
    this).addClass('dragging');
                    }).mouseup(
    function() {
                        jQuery(
    this).removeClass('dragging');
                        Boxy.dragging 
    = null;
                        self._fire('afterDrop');
                    });
                }
                
    this.getInner().prepend(tb);
                
    this._setupDefaultBehaviours(tb);
            }
        },
        
        _setupDefaultBehaviours: 
    function(root) {
            
    var self = this;
            
    if (this.options.clickToFront) {
                root.click(
    function() { self.toTop(); });
            }
            jQuery('.close', root).click(
    function() {
                self.hide();
                
    return false;
            }).mousedown(
    function(evt) { evt.stopPropagation(); });
        },
        
        _fire: 
    function(event) {
            
    this.options[event].call(this);
        }
        
    };



    posted on 2010-09-14 17:30 mashiguang 閱讀(4431) 評論(17)  編輯  收藏 所屬分類: javascript

    評論

    # re: jquery.boxy.js擴展 (0.1.40) 2010-09-19 17:00 jhrxx
    謝謝,太感謝了,正為這事發愁呢  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) 2011-01-07 16:46 re: jquery.boxy.js擴展 (0.1.40)
    還是不行呃  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) 2011-01-07 17:14 re: jquery.boxy.js擴展 (0.1.40)
    一旦拖動滾動條就又被遮住了  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) 2011-01-07 17:15 re: jquery.boxy.js擴展 (0.1.40)
    誰如果解決了請發解決方法到我郵箱
    80480305@qq.com
    謝謝  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) 2011-01-08 21:09 mashiguang
    @re: jquery.boxy.js擴展 (0.1.40)
    你仔細描述一下,或者截個圖發我郵箱里,mashiguang0833(AT).com  回復  更多評論
      

    # jQuery.data(this.boxy[0], 'boxy', this); [未登錄] 2011-04-22 15:09 jack
    jQuery.data(this.boxy[0], 'boxy', this);
    我想知道這句話是什么意思?  回復  更多評論
      

    # jQuery.data(this.boxy[0], 'boxy', this); [未登錄] 2011-04-22 15:09 jack
    jQuery.data(this.boxy[0], 'boxy', this);
    我想知道這句話表示什么意思?謝謝  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) 2011-04-22 15:55 mashiguang
    @jack
    jQuery.data(element, key, value)是用來做緩存的,可查看jquery api。  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) [未登錄] 2011-04-23 21:06 jack
    @mashiguang
    api中沒有說清楚啊,我知道data有兩個參數的時候做緩存的用法,但是這里有三個參數,能不能給我分析一下每個參數代表什么啊,尤其是這里的幾個參數,他們分別表示什么意思?謝謝!  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) [未登錄] 2011-04-23 21:48 jack
    還有你有沒有關于這套代碼的詳細解說啊,我想看看,讓自己對jquery更加了解,不知道您能不能幫到我,謝謝!  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) 2011-04-26 10:15 mashiguang
    @jack
    你可以把element這個參數看做 namespace

    如果要學習jquery的話,不要從boxy這個插件開始研究,很多插件都比boxy好用, 比如dialog。  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) [未登錄] 2011-04-27 09:44 jack
    @mashiguang
    謝謝了啊,這個boxy還是可以研究的,我再想問問你這個插件中獲取它的高度有點問題啊,尤其area的時候獲取的高度和實際不同啊,這是怎么回事啊?  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) 2011-04-27 10:56 mashiguang
    @jack
    不太明白你的意思,不好說明白的話可以截個圖發我郵箱里。  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) [未登錄] 2011-04-27 11:14 jack
    @mashiguang
    呵呵,那個問題我已經解決了,謝謝了啊  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) [未登錄] 2011-04-29 10:45 jack
    @jack
    你的郵箱是多少啊!我有個問題想向你請教  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) 2011-04-29 18:13 mashiguang
    @jack
    博客公告里有。mashiguang0833(AT).sina.com  回復  更多評論
      

    # re: jquery.boxy.js擴展 (0.1.40) 2011-06-12 16:10 ayun00
    boxy插件在調用ajxa 內容時候,使用load()方法
    但是在綁定回調函數的時候使用new()方法

    但是我現在的需求是 調用一個ajax內容 ,并且給它綁定回調函數
    請問這時候要怎么處理?  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲午夜无码久久久久小说 | 99在线视频免费观看| 亚洲导航深夜福利| 亚洲精品尤物yw在线影院| 成人网站免费观看| 免费毛片a线观看| 国产vA免费精品高清在线观看| 亚洲色无码专区一区| 亚洲春色在线观看| 亚洲AV无码久久| 亚洲自偷自偷在线制服| 国产成人免费福利网站| 国内免费高清在线观看| 1000部拍拍拍18勿入免费视频下载 | 免费在线观看黄网| 毛片a级毛片免费观看免下载| 日韩av无码久久精品免费| 韩日电影在线播放免费版| 51午夜精品免费视频| 美女隐私免费视频看| 亚洲精品乱码久久久久久V| 亚洲中文字幕无码av在线| 久久久久亚洲Av无码专| 亚洲国产一区二区a毛片| 亚洲成AV人片一区二区| 亚洲中文字幕无码一区二区三区| 免费精品国产自产拍观看| 永久免费毛片手机版在线看| 成人免费视频77777| 四虎永久在线观看免费网站网址| 18禁止看的免费污网站| 91制片厂制作传媒免费版樱花| 免费国产成人α片| 久久久久久国产精品免费免费男同 | 免费视频精品一区二区三区| 三级网站在线免费观看| 精品国产呦系列在线观看免费| 久99久无码精品视频免费播放| 国产精品美女免费视频观看| 国产日韩精品无码区免费专区国产| 国产高清对白在线观看免费91|