2016-06-22 16 views
0

jqueryでCSSに新しいプロパティ名を追加する方法はありますか?jquery関数に新しいプロパティを追加する

var css_class ={ 
    class1 : {height:100,background:'#000'}, 
    //class2 ... etc 
} 
var my_property = function(value){ 
    $(this).css(css_class.value); 
} 

$('#element').css({ 
    width: '100px', 
    my_property: 'class1' 
}); 
//expected ... #element have width 100 also height and backround from class1 
//I know it can be solved with a plugin like : 
// .css(...).my_plpugin('my_property') but I dont want this 

はありがとう:私はこのようないくつかを必要とする$ O(など、完全な期間、)新しいプロパティの多くを持っているのトランジットのような 何か 。

EDITED:私がこれで試したものにもっと多くの人が答えるので、この例ではさらに詳しい情報を追加しました。 miの例が正しくない、または別の方法で解決できる(間違いない)が、最も重要な質問は次のとおりです。トランジットプラグイン(たとえば)には他のプロパティもありますか? (cssのもの以外)これを行うためのメカニズム(方法)は何ですか? ありがとうございます。

+0

なぜありません ' .each(function(){}) '? – Dimava

+3

あなたは正確に何をしようとしていますか? –

+0

私はあなたが言うことを理解していますが、それは正しいですが、私は例のような厳しいものが必要であり、これを解決するための方法はありません。だから私はCSSの中に財産の名前が必要です。 – MTK

答えて

0

最終的に私はjqueryのソースの1つの条件がプロのソリューションではありませんが、それは仕事追加しました:

//I found this line in jquery source 
//style: function(elem, name, value, extra) { 

//I added here mi condition 
if(name[0] == '.'){ 
    var my_class_name = name.substr(1); 
    $(elem).css(css_class[my_class_name]); 
} 

だから今MI jsのコードで私はこのように書くことができます。

$('#element').css({ 
    width: '100px', 
    '.class1': '', //the empty value for not throw errors 
    //... more css here ... 
}); 
//now the #element have width 100px, height 100px and a black background 
関連する問題