Ich habe folgendes getan:Ich KISS (Keep it simple, Stupid) aber kann diese JavaScript-Struktur verbessert werden?
- Legen Sie alle Event-Handler innerhalb jQuery DOM bereit alle Ereignisse um sicherzustellen, dass nur für das Caching
Bitte sehen
$(document).ready(){
var searchCountry1 = $("#searchCountry1");
var linkCountry1 = $("#linkCountry1");
var codeCountry1 = $("[name='codeCountry1']");
//worst part here is if I have 10 searches,links, and codes. is it worst?
// and for every event I have this :
searchCountry1.click(function(){
//get json or open another search window
});
codeCountry1.keypress(function() {
codeCountry1.val("");
//or clear all other related fields(city or state) to reset
});
$linkCountry1.click(function(){});
//call redirect
});
function redirect(codeval,url){}
Ich habe eine kleine Menge veröffentlicht Code, aber bitte helfen Sie mir vorstellen, was ist, wenn ich zu viele Suchen, Felder und Links mit der gleichen Funktionalität aber diff Parameter habe?
Ich denke über OOP oder ein Design-Muster dafür nach. Aber auf keinen Fall (ich denke für jetzt). Bitte ermutigen Sie mich oder schlagen Sie andere Wege vor, wie Sie diese Code-Struktur verbessern können.
<input name="codeCountry1" /><br />
<input type="button" id="searchCountry1" /><br />
<a id="linkCountry1" href="#"><a/><br />
<input name="codeState1" /><br />
<input type="button" id="searchState1" /><br />
<a id="linkState1" href="#"><a/><br />
<input name="codeCity1" /><br />
<input type="button" id="searchCity1" /><br />
<a id="linkCity1" href="#"><a/><br />
<input name="codeOther1" /><br />
<input type="button" id="searchOther1" /><br />
<a id="linkOther1" href="#"><a/><br />
<input name="codeOther2" /><br />
<input type="button" id="searchOther2" /><br />
<a id="linkOther2" href="#"><a/><br />
diese Frage besser dem Stack des Programmierers hinzufügen – madalinivascu
Verwenden Sie die DRY-Prinzipien. Fügen Sie eine gemeinsame Klasse für alle Elemente 'searchCountry',' linkCountry' und 'codeCountry' hinzu, und verwenden Sie innerhalb des einzelnen Ereignishandlers das Schlüsselwort' this', um auf das Element zu verweisen, das das Ereignis ausgelöst hat. Sie sollten auch geschachtelte Event-Handler, wo möglich, vermeiden –
@RoryMcCrossan danke. Ich vermeide geschachtelte Event-Handler Sir. Entschuldigung für das falsche Format oben. Wie auch immer, um zu klären, ob ich einen Country-Kurs habe, also brauche ich einen anderen für City, State und andere Bereiche? – bumbumpaw