[Web2.0] Jquery (soluzione finale)
Simone Volpini
simonevolpini a yahoo.it
Gio 12 Lug 2007 16:29:01 CEST
Simone Volpini wrote:
> Quando risolvo, riposto il codice.
Eccolo. Sicuramente non è il massimo, ma fa il suo dovere.
Praticamente ho un'immagine linkata all'interno di una cella di una tabella.
Nel momento in cui clicco sull'immagine devo:
- chiamare un file php che cambia lo stato del record
- cambiare l'icona di stato
- cambiare il link
Questo è l'HTML:
<a class="stato" href="filePhpCambioStato.php?opt=disattiva&cat=1
?>"><img src="images/disattiva.gif" /></a>
E questo il javascript:
$("a").cambia_stato();
(function() {
jQuery.fn.cambia_stato = function() {
var oLink = this;
oLink.click(function() {
// controllo lo stato del record in base al link
if ($(this).attr("href").lastIndexOf('opt=attiva') != -1) {
// nuova immagine di stato
pathimg =
$(this).children("img").attr("src").replace('attiva.gif', 'disattiva.gif');
// nuovo link
pathlink = $(this).attr("href").replace('opt=attiva',
'opt=disattiva');
// cambio di colore della riga della tabella
$(this.parentNode.parentNode).attr("class","on");
} else { // disattiva
pathimg =
$(this).children("img").attr("src").replace('disattiva.gif', 'attiva.gif');
pathlink = $(this).attr("href").replace('opt=disattiva',
'opt=attiva');
$(this.parentNode.parentNode).attr("class","off");
}
// chiamata al file php (quello del link)
$.ajax({
type: "GET",
async: false,
url: $(this).attr("href")
});
$(this).children("img").attr("src", pathimg);
$(this).attr("href", pathlink);
return false;
});
};
})(jQuery);
Può essere migliorato utilizzando in maniera diversa gli attributi degli
oggetti in gioco. Adesso non volevo stravolgere la struttura html di base.
Ciao,
Simone
Maggiori informazioni sulla lista
Web2.0