JavascriptProva

domenica 31 marzo 2013

Creazione della proprietà indexOf degli Array nei vecchi browser IE (come io posseggo su questo computer)

Ecco risolto il modo di individuare, a ogni oggetto di un array che venga cliccato, l'individuazione del suo indice nell'ambito della matrice, superando il problema dei vecchi browser IE che non implementano la proprietà indexOf.

Usando il prototipo dell'oggetto Array:
Array.prototype.indexOf=function(oggetto){
 for(var i=0;i<this.length;i++){
  if(this[i]==oggetto) return i;
 }
 return -1;
}
ottengo come risultato, nell'Array che creerò successivamente, l'esistenza di una proprietà indexOf che mi restituisce l'indice dell'elemento passato come parametro se il parametro è presente, altrimenti mi restituisce -1.

Cliccando su una casella dell'array, l'evento onmousedown viene recepito dall'oggetto document (l'evento "bubbla" e viene recepito da quello gerarchicamente superiore), ma event.srcElement mi offre l'elemento su cui si è avuto l'evento. Quindi posso scrivere:
document.onmousedown=function(){alert(Nomi.indexOf(event.srcElement))};
e ottengo l'indice dell'elemento nell'ambito dell'Array!

Nessun commento:

Posta un commento