実行時にjavascriptを使用してプログラムで生成されたhtmlがいくつかあります。
このhtmlのcssプロパティを動的に変更できるようにしたいです。
$(".pointsbox").css("background-color","green");
ただし、css の変更が呼び出された時点ではこれらの html 要素を使用できないため、機能しないようです。
以前にこれを行うことができたと確信していますが、関数の名前を忘れてしまいました。
どんな助けでも大歓迎です!
実行時にjavascriptを使用してプログラムで生成されたhtmlがいくつかあります。
このhtmlのcssプロパティを動的に変更できるようにしたいです。
$(".pointsbox").css("background-color","green");
ただし、css の変更が呼び出された時点ではこれらの html 要素を使用できないため、機能しないようです。
以前にこれを行うことができたと確信していますが、関数の名前を忘れてしまいました。
どんな助けでも大歓迎です!
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')
;
イベント ハンドラーをバインドできる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
私はこれを使います。DOM がロードされたことを確認します。
$(document).ready(function(){
//code here
$(".pointsbox").css("background-color","green");
});