0

css で境界線を設定した場合でも、css 境界線プロパティを返そうとすると空の文字列が返される理由がわかりません。また、インライン メソッドを使用して境界線のスタイルを設定しようとしましたが、まだ機能していません。ありがとうございました!

(function($){

    var methods = {
    init : function( options, callbacks) {
        if(options === undefined) {
            return this.css("border");
        }

        return this.each(function(){
            if(options === null) {
                $(this).css("border","none");
                return;
            } else if(typeof options === "string") {
                $(this).css("border", options);
                return;
            } else if(typeof options === "object") {

                if(typeof options.style !== "undefined") {
                    $(this).css("border-style", options.style);
                } else {
                    $(this).css("border-style", "solid");
                }

                if(typeof options.width !== "undefined") {
                    $(this).css("border-width", options.width); 
                }

                if(typeof options.color !== "undefined") {
                    $(this).css("border-color", options.color); 
                }

                if(typeof options.radius !== "undefined") {
                    $(this).css("border-radius", options.radius);   
                }
            }
        });
    }
};

$.fn.border = function(method) {
    if ( methods[method] ) {
        return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
    } else {
        return methods.init.apply( this, arguments );
    }
};

})(jQuery);

要素の色を返そうとしている場合..すべて問題ないように見えます..しかし、border プロパティではありません。

4

1 に答える 1

0

この問題を次のように解決しました。

(function($){

    var methods = {
        init : function( options, callbacks) {

            return this.each(function(){
                        if(options === null) {
                    $(this).css("border","none");
                } else if(typeof options === "string") {
                    $(this).css("border", options);
                } else if(typeof options === "object") {

                                if(typeof options.style !== "undefined") {
                                    $(this).css("border-style", options.style);
                                } else {
                                    $(this).css("border-style", "solid");
                                }

                    if(typeof options.width !== "undefined") {
                        $(this).css("border-width", options.width); 
                    }

                    if(typeof options.color !== "undefined") {
                        $(this).css("border-color", options.color); 
                    }

                    if(typeof options.radius !== "undefined") {
                        $(this).css("border-radius", options.radius);   
                    }
                }
            });
        },
            getBorderStyle: function(options, callback) {

                    var elements = new Array();

                    this.each(function(){

                        var borderProperties = {};

                        borderProperties.style = this.style.borderStyle;
                        borderProperties.color = this.style.borderColor;
                        borderProperties.width = this.style.borderWidth;
                        borderProperties.radius = this.style.borderRadius;
                        borderProperties.element = this;
                        elements.push(borderProperties);
                    });

                    return elements;
            }
    };

    $.fn.border = function(method) {
            if ( methods[method] ) {
                return methods[method].apply( this, Array.prototype.slice.call( arguments, 1 ));
            } else if(method === undefined) {
                return methods["getBorderStyle"].apply(this, arguments);
            } else {
                return methods.init.apply( this, arguments );
            }
    };

})(jQuery);
于 2013-03-29T10:50:10.933 に答える