ID multipli in un singolo evento di clic JavaScript

In JavaScript sto usando l’evento click per modificare i dati del grafico. Di seguito è riportato un metodo per l’evento click.

$('#pro1').click(function () { chart.series[0].update({ data: pro1 }); }); $('#pro2').click(function () { chart.series[0].update({ data: pro2 }); }); $('#pro3').click(function () { chart.series[0].update({ data: pro3 }); }); 

Devo minimizzare questi tre eventi click in un evento, significa che voglio scrivere un evento click che gestisca gli id. qualche cosa come sotto il codice.

 $('#pro'+i).click(function () { chart.series[0].update({ data: pro+i }); }); 

Non so come farlo esattamente. Il codice sopra riportato non è corretto, è solo la mia mancanza di conoscenza di JavaScript.

Suggerirei di creare un object e selezionare gli elementi usando le classi, id dell’elemento cliccato recupera il valore della proprietà corrispondente dell’object helper:

 var pros = { pro1: '...', pro2: '...' }; $('.pros').click(function () { chart.series[0].update({ data: pros[this.id] }); }); 

Prova questo:

 var that = this; $('#pro1,#pro2,#pro3').click(function () { chart.series[0].update({ data: that[$(this).attr('id')]; }); }); 
 $('#pro1,#pro2,#pro3').click(function () { chart.series[0].update({ data: $(this).attr('id'); }); }); 

Codice aggiornato

 $('#pro1,#pro2,#pro3').click(function () { chart.series[0].update({ data: window[this.id] }); }); 

Usa una class.

 $('.pro').click(function () { chart.series[0].update({ data: $(this).attr('id'); }); }); 

E poi su ciascuno degli elementi # pro1, # pro2, # pro3 aggiungi una class di ‘pro’

 $("*[id^=pro]").click(function () { chart.series[0].update({ data: $(this).attr('id'); }); }); 

Puoi dare a tutti i tuoi elementi un nome di class e usare il selettore: eq () in jQuery.