Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581

    doc.ready ciclo su 3 elementi uguali

    ho in un form 3 campi uguali, che vengono generati dinamicamente, e che quindi potrebbero anche aumentare e che servono all'evento click sulla relativa immagine

    Le img per ora sono 3 con id "elimina_foto_01", "elimina_foto_02", "elimina_foto_03"

    Ho la necessità che, al click dell'immagine specifica, venga fatta una determinata azione alla quale è necessario che passi un parametro che si chiama ed ha id "old_file_01", "old_file_02" o "old_file_03"

    ho creato la relativa funzione in jquery ma non riesco a capire come mai, se stampo un alert con la x, mi restituisce 4 e non mi recupera il relativo valore del campo "old_file_X"

    ecco il codice:
    codice:
    function boZeriIniziali(numero, dimensione){
    	var str_zeri = "";
    	for($x=1 ; $x<=(dimensione-numero.toString().length) ; $x++){
    		str_zeri += "0";
    	}
    	str_zeri += numero.toString();
    	
    	return str_zeri;
    }
    
    $(document).ready(function(){
    	for(x=1 ; x<=3 ; x++){
    		$('#elimina_foto_'+boZeriIniziali(x, 2)).click(function(){
    			var id_agenzia = $('#id_agenzia').attr('value');
    			var file = $('#old_foto_'+boZeriIniziali(x, 2)).attr('value');
    			alert("zi="+boZeriIniziali(x, 2)+"\nid_agenzia="+id_agenzia+"\nfile="+file);
    		});
    	}
    });
    in particolare qualsiasi immagine delle 3 clikki, mi da sempre nell'alert zi=4
    c'è modo di riolvere senza che debba scrivere il codice 3 volte cambiando solo il numero?

    Grazie mille

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    non credo sia utile utilizzare un ciclo... se per esempio i tag img che ti interessano hanno tutti lo stessa proprietà class puoi applicare l'evento onClick al nome del class invece di impostarlo all'id, e puoi fare a meno del ciclo...

  3. #3
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    ho appena scritto le 3 funzioni al click, avendo 3 immagini ...
    se con il ciclo si può fare procedo con quello per risparmiare un po' di codice ... anche perchè il controllo che sarebbe da "clonare" per ogni immagine che rappresenta il cestino (ora 3 ma potrebbero aumentare o diminuire da db) è questo:
    codice:
    	$('#elimina_foto_01').click(function(){
    		var cont_id_agenzia = $('#id_agenzia').attr('value');
    		var cont_nome_file = $('#old_foto_01').attr('value');
    		var cont_posizione = 1;
    		if (!confirm("Confermi l\'operazione?\n\n- Eliminazione della foto " + cont_nome_file + "."))
    			return false;
    		else{
    			$.post("../admin/form.php", {id_agenzia:cont_id_agenzia, nome_file:cont_nome_file, posizione:cont_posizione, o:7}, function(data){
    				$("div#div_foto_01").empty();
    				$("div#div_foto_01").prepend(data);
    			});
    		}
    	});

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    mettiamo che hai questi tre tag img...

    <img id="elimina_foto_01" class="immagine">
    <img id="elimina_foto_02" class="immagine">
    <img id="elimina_foto_03" class="immagine">

    invece di fare cosi:

    $('#elimina_foto_01').click
    $('#elimina_foto_02').click
    ecc...

    puoi fare $('.immagine').click e quindi l'evento click sara richiamato per tutte e tre le immagini senza il bisogno di scrivere tre funzioni differenti o fare un ciclo...

  5. #5
    Utente di HTML.it L'avatar di Fichico
    Registrato dal
    Nov 2002
    residenza
    Bologna
    Messaggi
    581
    e fin qua ci siamo ... ma se vedi il mio codice ho necessità al click che venga preso il valore del campo con id "old_foto_XX" e che venga svuotato e nuopvamente scritto il div div_foto_XX ... come posso intercettare tali valori non sapendo che immagine è stata clikkata?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    lo sai che immagine è stata cliccata!

    per recuperare le proprietà dell'immagine cliccata ti basta usare l'oggetto this...
    esempio:

    $(this).attr('id')
    $(this).attr('value')

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.