質問

現在のページを動的に変更するカスタマイズサイトページを作成して、変更内容のプレビューを表示できるようにします。私が使用しているコードが:hover:visitedなどの擬似クラスを処理できないように見えることを除いて、すべてがかなりうまく機能しています。

コードは非常にシンプルで、基本的に次のことをしています:

$("#links td.active a:hover").css("color", "#ff0000");

ただし、これは実際には<a>タグのホバーカラーを#ff0000に設定しません。ただし、document.styleSheets.inlinestyle.rulesを外しても問題ありません。誰でもこれを機能させる方法について提案がありますか?

ありがとうございます!

編集1:どうやら、まったく間違っている可能性があります。いくつかの詳細情報から、<=>を使用して変更できる可能性があることがわかりますが、これはIEでのみ機能するようです。これ以上のアイデアは大歓迎です。

役に立ちましたか?

解決 4

まあ、ついに思い通りに動作させる方法を見つけました。基本的なコードは次のとおりです。

function updatePageCSS(input, color) {
  $('style.new_css_styles').remove();

  var new_css_styles = "<style class='new_css_styles'>";

  $('input.colorPicker').each(function() {
    var id = $(this).attr('id');
    var selector = $('#' + id + '_selector').val();
    var attribute = $('#' + id + '_attribute').val();
    var new_color = color;

    if ($(this).attr('id') != $(input).attr('id')) {
      new_color = $(this).val();
    }

    new_css_string += selector + ' { ' + attribute + ': ' + new_color + ' }\n';
  });

  new_css_styles += "</style>";

  $('head').append(new_css_styles);
}

selectorおよびattributeは非表示入力の値です。私はこのアプローチがあまり好きではありませんが、仕事を終わらせるようです。

scroll top