function evl(etna){
document.addEventListener("click",function (el) {
var clickedElement = el.target || el.srcElement;
alert("Link detected a click. Cancellable: "+clickedElement.name);
for(var i = 0; i < etna.length; i++) {
if(etna[i] === clickedElement) {
//i is a position of an element in etna
break;
}
}
},false);
};
this
クリックされた要素を指すを使用できます。Phil H IE 8 に関しては、そのようには機能しません。しかしとにかく、使用する必要があり.target
ます.srcElement
。そして多分それはそのIDを取得する方が良いでしょう。Name属性は、div、spansなどには無効です。
ただし、イベントをに添付することもできますdocument
。そして、これはドキュメントを指します。その代わりに、クリックが実際に発生したノードへのポインタel.target || el.srcElement
であるwhereを使用する必要があります。.target/.srcElement
また、によって返される配列内の要素(実際にはノードリスト)のインデックスを取得できるとは思いませんdocument.getElementsByTagName("*")
(まあ、そのリストを取得してループで繰り返し、各要素が等しいかどうかを確認できますthis
)。さらに、なぜそれが必要になるのかわかりません。