всегда лучше создавать обработчики событий против встроенного, поскольку у вас есть намного больше контроля над ним.
var img = document.createElement('img');
img.myInfo=[IPatient,nom,prenom,mesure_decision,type_mesure];
img.src='../images/fam/bug.gif';
img.addEventListener('click',showDetails,false);
return img;
внутри функции ShowDetails
function showDetails(e){
console.log(this.myInfo,e,e.target)
var i=this.myInfo;
console.log(i[0],i[1],i[2],'....');
//if you want aslo more control here use {'IPa':IPatient,'nom':nom.....}
// so that you can write i.IPa, i.nom.....
}
в этом случае вы можете использовать removeEventListener, если вы удалите изображение позже но больше всего это проще изменить существующий код позже.
function deleteImage(e){
delete this.myInfo
this.removeEventListener('click',showDetails,false)
//....
}
все в javacript - это объект, поэтому вы можете просто добавить параметры. и в этом случае это очень полезно.
т.е.
img[img.addEventListener?'addEventListener':'attachEvent']('click',showDetails);
img[img.removeEventListener?'removeEventListener':'detachEvent']('click',showDetails);
function showDetails(e){
e=e||window.event;
console.log(this.myInfo,e,e.target||e.srcElement);
}
Используйте некоторую библиотеку поддержки, такие как JQuery ... писать OnClick обработчики, как у вас на динамических тегов не очень элегантный ... –
@AnttiHaapala вам не нужно JQuery для обработки [ (https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener), вы также не можете [создавать элементы динамически] (https://developer.mozilla.org/en/Docs-американские/Web/API/document.createElement). – Broxzier
Конечно, нет, но если вы не знаете, как это сделать без jquery, то использование jquery поможет немного. –