Spero il titolo non sia toppo contorto
stò usando il framework jQuery.
ho una lista di elementi richiamati tramite AJAX strutturata come segue:
<ul id="loc" class="groupWrapper">
<li class="box_associato" id="li_1"><span class="box_allegato_delete" id="associato_1">[img]icone/icona_close.gif[/img]</span>
Nome Prodotto 1
....
<li class="box_associato" id="li_10"><span class="box_allegato_delete" id="associato_10">[img]icone/icona_close.gif[/img]</span>
Nome Prodotto 10[/list]
Ho creato una funzione che, al click sulla X all'interno dei tag[*], rimuove lo stesso ed esegue una chiamata AJAX per aggiornare il DB.
La richiamo con onclick="delrelazioni(); return false;" perchè altrimenti la funzione non partirebbe.
Il problema è che se ho esempio dieci[*] quando cancello il primo appare 1 messaggio di conferma, quando cancello il secondo ne appaiono 2 in successione e via via sempre di più, in pratica la funzione viene richiamata n volte di seguito in base agli[*] eliminati in precedenza.
questo è il codice JS:
Codice PHP:
function delrelazioni() {
$(".box_associato span").click(function () {
var id_item = $("#id").val();
var id = $(this).attr("id");
var dataString = 'action=delProdAssociati&id=' + id ;
var parent = $(this).parent();
if(confirm('Sei sicuro di voler rimuovere il prodotto dalla lista?')){
//invia la richiesta AJAX per eliminare il record
$.ajax({
type: "POST",
url: "../includes/ajax-updatedb.asp",
data: dataString,
cache: false,
success: function() {
$(parent).fadeOut("normal",function() {
$(this).remove();
//invia la richiesta AJAX per ripopolare la select
var dataString2 = 'action=showrelazionilist&id=' + id_item ;
$.ajax({
type: "POST",
url: "../includes/ajax-updatedb.asp",
data: dataString2,
cache: false,
success: function(theResponse) {
$("select#prodotto_associato").html(theResponse);
}
}); //chiudi $.ajax
});
} //chiudi success
});
} //chiudi if confirm
});//chiudi function
} //chiudi delrelazioni()
qualcuno sa dirmi dove sbaglio?
grazie