jQuery valkuil: werken met niks
Voor wie jQuery gebruikt en de volgende valkuil nog niet kent: doe er je voordeel mee!
Controleer de aanwezigheid van een element (of: werk niet met niks)
Ik kwam een prachtig stuk code tegen om middels een mooie animatie een begrippenlijst op het scherm te toveren. Toetscombinaties, transparantie, alles. Omdat ik aan het betreffende project het een en ander moest sleutelen, uitbreiden en aanpassen, kwam een onvermijdelijk moment: een javascript error in de firebug console. En toen bleek dat de code ongeveer zo in elkaar zat (namen van objecten zijn gefingeerd):
var eenObject = jQuery('#een #moeilijke #selector:eq(0)');
eenObject.show();
eenObject.doeErVanAllesMee();
Waar zat nu het probleem?
Als het object niet bestaat, bevat eenObject niets, nada, noppes, en gaat het dus grandioos fout. De oplossing?
jQuery('#een #moeilijke #selector:eq(0)').each(function(){
this.show();
this.doeErVanAllesMee();
});
Met deze constructie wordt de code alleen uitgevoerd op elk element uit de collectie. Lege collectie? dan geen code!
