0

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

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

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

$.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/

4

1 回答 1

1

我有一个解决方案,看看这个。

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

工作演示

上面的代码是我自己的逻辑,你提供的代码我也实现了。

您的插件功能

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

于 2013-07-19T05:41:53.310 回答