Hallo Roadster,
Hallo Jürgen :)
function addEventListenerForList01(){
for (var p = 1; p <= 2385; p++) {
document.getElementById("BGBp"+p).addEventListener("click",pOnClick);
}/* ... */
}
>
> Ich glaube, du hast Camping\_RIDER falsch verstanden. Du sollst nicht jedem Element einen Click-Handler geben, sondern dem übergeordneten. Im Eventhandler fragst du dann ab, wohin geklickt wurde.
Umh, naja, das ist ein jedenfalls ein interessanter Gedanke... ich meine, die zitierte Funktion von RIDER ist ja im Prinzip inhaltlich betrachtet nur eine (wesentlich) verkürzte Darstellung von...
~~~javascript
function addEventListenerForListXYZ(){
document.getElementById("BGBp1").addEventListener("click",BGBp1OnClick);
document.getELementById("BGBp2").addEventListener("click",BGBp2OnClick);
/* etc.. etc.. */
}
...aber eigentlich hast du ja recht: Wenn ich statt bspw. BGBp1OnClick, BGBp2OnClick usw. ohnehin eine einheitliche Zielfunktion des click-events habe, wo dann geprüft wird, wohin der click gesetzt wurde, dann könnte ich mir diese Funktion ja eigentlich auch komplett sparen, und den eventListener einfach an das Elternelement dranhängen, also nur noch...
function addEventListenerForListXYZ(){
document.getElementById("listXYZ").addEventListener("click",listXYZonClick);
}
Die e.tartget.id
muss ich ohnehin in der EventListener-Zielfunktion noch bearbeiten, da ich (um doppelte ID-Vergabe zu vermeiden) jeder Listitem-ID noch ein Präfix vorangestellt habe, dass ich rausnehmen muss, um den 'reinen' Namen des Elements dann dazu zu benutzen, die ID's für den Inhalt ('BGBp342Text','BGBp342Headline','BGBp342Name' usw.) zu ermitteln, welcher dann angezeigt werden soll.
Bislang hatte ich einfach element=e.target.id;
und dann id=element.slice(6,13);
plus zum Laden der Inhalte dann...
var headline=document.getElementById(id+"Headline");
var headlineContent=headline.innerHTML;
var text=document.getElementById(id+"Text");
var textContent=text.innerHTML
var name=document.getElementById(id+"Name");
var nameContent=name.innerHTML;
// usw...
...wobei die Inhalte dementsprechend benannt sind, also bspw. wird aus element selectBGBp320 dann id BGBp320 und die dazugehörigen Informationsträger heißen dann BGBp320Text, BGBp320Headline etc.
Dann könnte ich an der Stelle vielleicht mit charAt()
bevor ich aus 'element' 'id' mache, ein if()
einbauen und checken, wie lang der String ist und dann gegebenenfalls statt var id=element.slice(6,13)
eben var id=element.slice(6,14);
schreiben, wenn an dem Paragraphen noch ein Suffix à la BGBp612a dran ist.
Und für Paragraphen, die nicht auf clicks reagieren sollen, checke ich auf gleichem Wege, ob das Suffix dann ggf. 'z' ist.
Das müsste funktionieren!
Danke für den Hinweis! ;)
Werde das gleich mal ausprobieren...
Gruß,
Roadster.