Minden tizedik kattintásnál írja ki, hogy "hello világ", ezt hogy tudom megoldani js-el?
Az egyszerű megoldás (ezt mondjuk illene segítség nélkül is összehozni, még ha kezdő vagy is):
var calls = 0;
document.getElementById("valami").onclick = function() {
˙˙˙˙calls++;
˙˙˙˙if (calls == 10) {
˙˙˙˙˙˙˙˙calls = 0;
˙˙˙˙˙˙˙˙alert("Hello, Világ!");
˙˙˙˙} else {
˙˙˙˙˙˙˙˙alert("Nem sikerült");
˙˙˙˙}
};
A valamivel profibb megoldás pedig:
function ModulusMessageService(successMsg, errorMsg, resetThreshold) {
˙˙˙˙var callsInARow = 0;
˙˙˙˙this.getMessage = function() {
˙˙˙˙˙˙˙˙registerCall();
˙˙˙˙˙˙˙˙return (isReturningSuccess()) ? successMsg : errorMsg;
˙˙˙˙};
˙˙˙˙var registerCall = function() {
˙˙˙˙˙˙˙˙callsInARow = (callsInARow + 1) % resetThreshold;
˙˙˙˙};
˙˙˙˙var isReturningSuccess = function() {
˙˙˙˙˙˙˙˙return ((callsInARow % resetThreshold) == 0);
˙˙˙˙};
};
function AlertingMessageView() {
˙˙˙˙this.display = function(message) {
˙˙˙˙˙˙˙˙alert(message);
˙˙˙˙};
};
var service = new ModulusMessageService("Hello, Világ!", "Nem sikerült.", 10);
var view = new AlertingMessageView();
document.getElementById("valami").onclick = function() {
˙˙˙˙view.display(service.getMessage());
};
Itt elmagyarázni, hogy miért az utóbbi a jó, elég hosszú lenne, de privátban, apránként szívesen elmondom, ha érdekel...
Természtesen a "˙" karaktereket ki kell dobni, azok csak a formázás megtartása miatt lettek ide beírva (a GYK trimmeli a válaszokat).
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!