Buongiorno a tutti!
Posto subito un codice di esempio per illustrare il problema che mi si presenta:
codice:
<html>
<head>
<script type="text/javascript" src="http://common.html.it/js/jquery.pack.js"></script>
<script type="text/javascript">
var counter=0;
$(function(){
$("#chkChangeColor").change(function(){
if($(this).is(":checked"))
$(".lblDato").css('background-color','red')
else
$(".lblDato").css('background-color','yellow');
});
setInterval("aggiornaHtml()", 5000);
});
function aggiornaHtml(){
$("#content").html('<input type="text" id="Dato" class="lblDato" value="' + (++counter) + '" />');
}
</script>
</head>
<body>
<style rel="stylesheet" type="text/css">
.lblDato{
color:blue;
background-color:yellow;
}
</style>
<p id="content">
<input type="text" id="Dato" class="lblDato" value="abcd" />
</p>
sfondo rosso <input type="checkbox" id="chkChangeColor" />
</body>
</html>
spuntando la checkbox modifico lo sfondo della casella di testo agendo sul css.
Quando la funzione aggiornaHtml sostituisce la casella di testo con una nuova, il colore di sfondo torna al default. Questo mi fa pensare che l'istruzione $(".lblDato").css('background-color','red') agisce sugli oggetti presenti nella pagina che hanno classe uguale a lblDato e non sulla classe stessa!
La domanda è:
esiste un modo per agire sui fogli di stile così che, creando un nuovo oggetto, questo prenda gli attributi della classe modificata?