Javascript:我如何引用拥有事件处理程序的对象?

时间:2013-11-26 11:52:23

标签: javascript

我有一个包含图片缩略图的页面,每个缩略图都有onclick个事件。

<a href='javascript:void(0)' onclick='getInfo();'>
  <img src='album/123.jpg' width='200' height='150' alt='' />
</a>     
<a href='javascript:void(0)' onclick='getInfo();'>
  <img src='album/456.jpg' width='240' height='320' alt='' />
</a>  

在事件处理程序getInfo()中,我想获取我单击的图像的信息,例如源文件名或高度。我怎样才能做到这一点? (我希望使用this,但这似乎是指窗口,而不是<a>标签。)
我没有使用jquery(还),所以我很感激纯粹的javascript答案。

3 个答案:

答案 0 :(得分:1)

这样做:

onclick='getInfo(this);'> ...

然后你可以在方法本身中获得引用

或者你可以这样做:

onclick='getInfo(event);' // IE不发送我认为 - 但是铬做。

在函数中,您可以获得Target

通过活动:

function getInfo (evt)
{
 evt.target...
}

通过这个:

function getInfo (that)
{
   do something with that....
}

答案 1 :(得分:0)

http://jsfiddle.net/Xrzs3/

<a href='#'>
  <img src='http://www.vectortemplates.com/raster/batman-logo-big.gif'
       width='40px' height='40px' />
</a>

<强>的onload

var a=document.getElementsByTagName("a");

for(var i=0;i<a.length;i++){
   a[i].addEventListener("click", function(e){
   var img=e.target;
   var src=img.src;
   alert("image source = "+src);
   }, false);
}

答案 2 :(得分:0)

试试这个:

function getInfo() { 
        var owner = (window.event.target) ? window.event.target  : window.event.srcElement;
        // rest of your code
    }