Niektóre informacje: Pracuję nad projektami Front-End Development w FreeCodeCamps, a ten projekt przedstawia maszynę z losową wyceną.Dlaczego moja funkcja .on ("click") dla funkcji AuthorButton zwraca moją zmienną tylko co drugi cytat?
chciałbym zachować autor ukryty za każdy cytat, ale w tej chwili, „Kliknij aby odsłonić przycisk” ujawnia tylko autorowi każdy inny cytat ...
https://codepen.io/DecisiveIndecisive/pen/KXjXXd
Kod w pytanie to JavaScript. Dziękuję Ci!
$(document).ready(function() {
var url =
"https://api.forismatic.com/api/1.0/?method=getQuote&key=1&lang=en&format=jsonp&jsonp=?";
$("#refreshButton").on("click", function() {
$.getJSON(url, function(json) {
var jsonQuote = json.quoteText;
var jsonAuthor = json.quoteAuthor;
$(".counter").html(jsonAuthor);
$("#authorButton").text("Click to Reveal");
if (jsonAuthor === "") {
$("#refreshButton").trigger("click");
} else {
$(".message").html(jsonQuote);
$("#authorButton").click(function() {
$(this).text(function(i, text) {
return text === "Click to Reveal"
? "- " + jsonAuthor
: "Click to Reveal";
});
});
} //else close
}); //getJSON close
}); //refreshButton Close
});
Przy każdym "odświeżeniu" dodajesz nowy moduł obsługi kliknięć w '# authorButton', który przełącza wyświetlanie autora. Pierwsze kliknięcie = jeden handler (= pokaż), drugie kliknięcie = dwa handler (= show -> hide), trzecie kliknięcie = three handler (= show -> hide -> show), ... – Andreas