Più di id in un unico JavaScript evento click

In JavaScript sto usando evento click per modificare i dati di un grafico. Qui di seguito è 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
            });
        });

Ho bisogno di minimizzare questi tre clic del mouse in un evento, significa che ho intenzione di scrivere un evento click di gestire gli id. qualche cosa come codice di seguito.

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

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

  • utilizzare una classe e la magia “questo” 🙂
  • sarebbe molto più facile se pro sarà un array
  • yep utilizzare una classe e l ‘ “io” woud essere $(this).indice();
InformationsquelleAutor MAR | 2013-08-29

 

6 Replies
  1. 12

    Vorrei suggerire la creazione di un oggetto e selezionando gli elementi utilizzando le classi, id dell’elemento selezionato recupera il valore della proprietà corrispondente dell’oggetto helper:

    var pros = {
       pro1: '...',
       pro2: '...'
    };
    
    $('.pros').click(function () {
        chart.series[0].update({
            data: pros[this.id]
        });
    });
    • Grazie per me funziona bene
  2. 47

    Provare questo:

    var that = this;
    $('#pro1,#pro2,#pro3').click(function () {
        chart.series[0].update({
            data: that[$(this).attr('id')];
        });
    });
  3. 10
    $('#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]
        });
    });
    • proN è una variabile e non una stringa. Se le variabili sono globali window[this.id] di lavoro.
    • pensi davvero che l’OP vuole passare la stringa di dati del grafico?
  4. 4

    Utilizzare una classe.

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

    E poi su ciascuno dei #pro1, #pro2, #pro3 elementi di aggiungere una classe di ‘pro’

    • wtf motivo per il voto?
    • Si era data: pro+i senza la definizione di variabili per pro o i. Downvote rimosso.
    • Evviva, è stato un work in progress. In realtà era nel mezzo di esso.
  5. 2
    $("*[id^=pro]").click(function () {
        chart.series[0].update({
             data: $(this).attr('id');
        });
    });
  6. 0

    Si potrebbe dare a tutti gli elementi di una classe di nome e di usare il :eq() il selettore all’interno di jQuery.

Lascia un commento