jQuery - 扩展css()

时间:2013-07-19 04:40:05

标签: jquery jquery-plugins

如果我想获得.css()margin的css值,则jQuery padding不起作用。

我找到了一个解决这个bug的jquery代码。

请通过添加以下代码帮助我扩展jquery .css()

$.each(['border', 'margin', 'padding'], function (i, name) {
        $.fn[name] = function (value) {
            if (value) {
                if (value.top !== undefined) {
                    this.css(name + '-top' + (name === 'border' ? '-width' : ''), value.top);
                }
                if (value.bottom !== undefined) {
                    this.css(name + '-bottom' + (name === 'border' ? '-width' : ''), value.bottom);
                }
                if (value.left !== undefined) {
                    this.css(name + '-left' + (name === 'border' ? '-width' : ''), value.left);
                }
                if (value.right !== undefined) {
                    this.css(name + '-right' + (name === 'border' ? '-width' : ''), value.right);
                }
                return this;
            }
            else {
                return {top: num(this.css(name + '-top' + (name === 'border' ? '-width' : ''))),
                        bottom: num(this.css(name + '-bottom' + (name === 'border' ? '-width' : ''))),
                        left: num(this.css(name + '-left' + (name === 'border' ? '-width' : ''))),
                        right: num(this.css(name + '-right' + (name === 'border' ? '-width' : '')))};
            }
        };
    });

Hre是表示jquery .css()在firefox浏览器中无法获得填充和边距值的小提琴

http://jsfiddle.net/howtoplease/fMTsW/4/

1 个答案:

答案 0 :(得分:1)

我有一个解决方案,请看一下。

$(document).ready(function(){
       ....
           $('[name='+this.name+']').val(marginT);
           .....
       }else{         
        this.value = $('h3').css(this.name);
       }
    });
});

WORKING DEMO

以上代码是我自己的逻辑, 我还实现了您提供的代码。

Your Plugin function

此插件也有问题,请检查显示的console.log。