与内联相比,创建事件处理程序总是更好,因为您可以更好地控制它。
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 中的所有内容都是一个对象,因此您只需添加参数即可。在这种情况下,这非常有用。
IE
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);
}