Ho molti pulsanti che hanno la stessa classe ma id diversi su ciascuno. Il seguente pulsante html viene aggiunto accanto a ciascun elemento $ $.jquery - cambia il testo del pulsante al clic funziona solo al secondo clic
<button name="toHomepageButton" id = "<?php echo $data->id ?>" class="frontpage"><?php if ($data->isChecked == 1) echo "Remove from homepage"; else echo "Promote to homepage" ; ?> </button>
Ora voglio modificare il testo del singolo pulsante in base a se viene fatto clic. Ad esempio, se si fa clic su un pulsante e contiene il testo "Promuovi nella home page", il testo dovrebbe essere modificato in "Rimuovi dalla home page" e viceversa. Ho usato il seguente codice jquery per farlo.
$('.frontpage').on('click', function() {
var id = this.id;
$("#"+id).html($("#"+id).html() == "Promote to homepage" ? "Remove from homepage" : "Promote to homepage");
});
Ora, questo codice funziona ma solo sul secondo scatto. Ad esempio, quando faccio clic su un pulsante di promozione per la home page, il testo non cambierà, ma se clicco di nuovo, il testo cambia. Che cosa sto facendo di sbagliato? Per favore aiuto.
Quando si esegue il rendering della pagina, il pulsante 'id' ha il valore corretto? Perché, se provo in un semplice codice HTML (rimuovendo il codice PHP), il tuo codice funziona: https://jsfiddle.net/aforni/26z3z0xo/ – Andrea
La tua pagina va ad un'altra pagina, significa che il pulsante collega ad altre pagine e pagina onclick è rinfrescante? – locateganesh
Grazie per aver dedicato del tempo per provarlo su jsfiddle. Il problema era lo spazio extra indicato da @DGS – jimmypage