2011-02-04 14 views
1

私はjQueryを使いこなしていて、少しCSSを生成すると思っていました。jQuery CSSジェネレータ - CSSの出力を更新しますか?

現在、変更を加えると変更が追加されることがわかります。追加するのではなく、CSS出力を更新するようにしたいと思います。その代わりに...

textarea{ 
font-size: 18px; 

}textarea{ 
color: green; 

} 

それは次のようになります。

textarea{ 
font-size: 18px; 
color: green; 
} 

http://jsfiddle.net/MSSJQ/3/

これは私がこれまでに揺れているものです。 ...

+1

これは: '$("#code ")。append(要素+" {
");'非常に間違っています。 CSSスタイル定義にHTMLを追加しています。その結果は 'textarea {
color:green;}'となるでしょう。 「
」を削除します。 –

+1

現在、単純な文字列連結を行っています。スタイルプロパティ/値としてプロパティ/値のペアを持つスタイルを表すオブジェクトを作成すると、はるかに簡単になります。それらのプロパティを列挙し、文字列を生成することができます。これにより、スタイルを追加/更新/削除するのがはるかに簡単になります。 – user113716

答えて

1

は概念のちょうど証明

を更新しましたが、あなたのアイデアを得ることができ

$(function() { 
    $('#textarea').updateStyle(); 
}); 

(function($){ 
$.fn.updateStyle = function(options) { 
    var defaults = { 
     controls: '#controls p a', 
     codewrapper: '#code' 
    }; 
    var options = $.extend(defaults, options); 
    return this.each(function() { 
     $elm = $(this); 
     var element = $elm.attr('type'); 
     $(options.controls).click(function(e) { 
      e.preventDefault(); 
      var control_class = $(this).attr("class"); 
      var property_value = $(this).text(); 
      var css_property = control_class + ': ' + property_value + '; '; 
      var property_wrapper = '.' + control_class; 
      var html = '<span class="' + control_class + '">' + css_property + '<span>'; 
      var $outer = $('#' + element + '-outer'); 
      var $inner = $('#' + element + '-inner'); 
      if ($outer.length) { 
       if ($outer.find(property_wrapper).length) { 
        $outer.find(property_wrapper).html(css_property); 
       } else { 
        $inner.append(html); 
       } 
      } else { 
       $(options.codewrapper).append('<div id="' + element + '-outer">' + 
        element + ' {' + '<div id="' + element + '-inner">' + html + 
        '</div> }</div>'); 
      } 
      $elm.attr('style', $inner.text()); 
     }); 
    }); 
}; 
})(jQuery); 
+0

ありがとうございます。よく働く! – AJFMEDIA

関連する問題