• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

divers. Rechner mit jquery, Architektur verbessern

Iago

New member
Hallo, ich habe hier ein Beispiel mit verschiedenen jquery- Rechnern zum Thema
Metallverarbeitung.

Zerspanungs Rechner

Ich hab eine Funktion, die wird dann von einem DOM-Gerüst verwendet wird. Da ich weitere Rechner einbauen möchte, wäre es mein Ziel, möglichst viel über wenige Funktionen zu machen. Z.B wäre eine einfache berechnen() - Funktion/Methode interessant, und nicht function calc1, functions calc2 usw.. Weiß hier jemand evtl einen Lösungsansatz oder zumindest ein Stichwort evtl..? Vielen Dank!
 
Zuletzt bearbeitet:
Wenn die Funktionen eigentlich das gleiche tun, nur mit verschiedenen DOM-Elementen oder Konstanten, kann man mit Funktionsparametern arbeiten. Wenn die aber verschiedene Dinge tun, sollte man auch getrennte Funktionen machen.

Stichwort ist also (Funktions-)Parameter.
 
Ja die tun auch verschiedene Dinge, also lass ich es es dabei... aber kann man evtl an den Click Events etwas ändern??
Angenommen ich habe 30 so kleine Rechner (Formelsammlung), könnte ich nicht die anonymen click-event Funktionen über eine Schleife erzeugen und dann die Rechner-spezifischen Parameter (mehrdimensionales Array) so übergeben?? Macht das Sinn?
 
Die Eventlistener per JS zu erzeugen ergibt auf jeden Fall Sinn. Ob das per Schleife und Array machbar/sinnvoll ist, kann sein - zeig' doch mal, wie du dir das gedacht hast.
 
das mit dem Array ist eher schwierig, die Rechner haben unterschiedliche Eingabefelder, Berechnusmethoden usw..
Ich habe aber versucht eine bessere Struktur hinzubekommen indem ich die Rechne in Literalschreibweise notiert habe.
Leider funktioniert das nicht...
Code:
var rechner = {
	
	    calc0 : function(d,n) = { ergebnis = (d*n*Math.PI)/1000; return ergebnis; }, 
		calc1 : function(n,v) =  {  ergebnis = n*v; return ergebnis; },
		calc2 : function(n,v,anz_z) = { ergebnis = n*v*anz_z; return ergebnis; },
		calc3 : function(v,d) = { ergebnis = (v*1000)/(d*Math.PI); return ergebnis;  }
	};
	   
	   $("button#1").click(function(){  
	   
			var zw_ergebnis = rechner.calc0($("input#dm").val(),$("input#dz").val());
			var ergebnis = runden(zw_ergebnis);
		 $("#ergebnis_schnittgs").css("font-size","30px").html(ergebnis+" m/min");

		});
                           ....
 
Zurück
Oben