Javascript 相同元素的this.id值在不同浏览器中不同

Javascript 相同元素的this.id值在不同浏览器中不同,javascript,jquery,Javascript,Jquery,我使用Raphael.js来处理SVG映射。它在所有桌面浏览器中都表现出色。我有一个点击功能,当点击地图上的一个给定区域时,它会触发一些事情。它依赖于抓取单击对象的(this.id)并返回一些结果 问题是它可以在桌面浏览器Safari、Opera、IE9和Chrome上运行。我尝试在移动android(4.0.3)浏览器上打开相同的东西,但(this.id)的值不相同,因此我单击的区域不是我得到结果的区域。桌面上对象的this.id不等于移动浏览器上相同对象的this.id 我已经使用警报验证了

我使用Raphael.js来处理SVG映射。它在所有桌面浏览器中都表现出色。我有一个点击功能,当点击地图上的一个给定区域时,它会触发一些事情。它依赖于抓取单击对象的(this.id)并返回一些结果

问题是它可以在桌面浏览器Safari、Opera、IE9和Chrome上运行。我尝试在移动android(4.0.3)浏览器上打开相同的东西,但(this.id)的值不相同,因此我单击的区域不是我得到结果的区域。桌面上对象的this.id不等于移动浏览器上相同对象的this.id

我已经使用警报验证了这些值。有什么好处?我如何解决这个问题,或者以更简单的方式找到单击项目的id

以下是重要的代码片段:

drawnl[i].click(function(){//click function

if(dcount == mcount){
    idx = (highestid-1-this.id); // this takes the total number of markets generated up to this point, subtracts the # of markets for this current map

}else if(gens > 2){

    idx = (mcount-1)-((dcount + (gens-2))-(this.id)); // this takes the total number of markets generated up to this point, subtracts the # of markets for this current 

}else{
    idx = mcount-1-(dcount-this.id);
}   

}

我已经确认所有其他值都是一致的,除了当我获取这个.id时。我正在使用Raphael.js()中的内置处理程序,id应该在事件中。在您的事件处理程序中


var id=evt.target.id

你能发布一个JSFIDLE让我们看看你在做什么吗


暗中拍摄:您可以使用事件对象,通常是传递给事件侦听器回调函数的第一个参数。然后可以执行eventObject.currentTarget.id,它应该是对触发单击事件的节点的引用。

噢,就像hvgotcodes所说的那样。但根据具体情况,您可能需要currentTarget: