0

実行時にjavascriptを使用してプログラムで生成されたhtmlがいくつかあります。

このhtmlのcssプロパティを動的に変更できるようにしたいです。

  $(".pointsbox").css("background-color","green");

ただし、css の変更が呼び出された時点ではこれらの html 要素を使用できないため、機能しないようです。

以前にこれを行うことができたと確信していますが、関数の名前を忘れてしまいました。

どんな助けでも大歓迎です!

4

3 に答える 3

1

HTML要素をどの程度正確に作成するかについてのコードは投稿していませんが、次のような単純なものにすることができます。

HTMLをjQuery関数に渡すことでHTML要素を作成できますか?

var new_element = $('<div>');

そうですね、それを他のjQueryオブジェクトと同じように扱い、そのCSSをその場で操作することができます。

var new_element = $('<div>').css('background-color', 'green');

ちなみに、1回の呼び出しで、作成css変更、およびDOM挿入をチェーンすることもできます。

var new_element = $('<div>')
                      .css('background-color', 'green')
                      .appendTo('#container')
                      ;
于 2012-06-28T12:27:41.230 に答える
1

イベント ハンドラーをバインドできるMutation イベント(具体的にはDOMNodeInsertedイベント) があります。ただし、リンクしたページに記載されているように、ページのパフォーマンスに深刻な悪影響を及ぼし、クロスブラウザーのサポートが特に優れていないため、リンクしないことをお勧めします.

DOMNodeInserted別の方法は、カスタム イベントを使用して独自のイベントをシミュレートすることです。基本的に、カスタム イベント (たとえばnodeinserted) のハンドラーをドキュメントにバインドし、ページの構造を動的に変更するコードがあるたびにそのイベントをトリガーします。コードは次のようになります。

$(document).on('nodeinserted', function() {
    $('.pointsbox').css('background-color', 'green');
});

function modifyPage() {
    // code to modify your page here
    $(document).trigger('nodeinserted');
}

このアプローチでは、要素をページに追加してそのカスタム イベントをトリガーするすべての関数を変更する必要があることに注意してください。nodeinserted

于 2012-06-28T12:44:30.063 に答える
0

私はこれを使います。DOM がロードされたことを確認します。

$(document).ready(function(){
    //code here 
    $(".pointsbox").css("background-color","green");
});
于 2012-06-28T12:10:37.150 に答える