我正在使用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);
}
}
我已经确认所有其他值都是一致的,除非我抓住this.id.我正在使用Raphael.js(http://raphaeljs.com/reference.html#Element.click)
中的内置处理程序答案 0 :(得分:0)
id应该在事件上。在你的事件处理程序中
var id = evt.target.id;
答案 1 :(得分:0)
你可以张贴一个jsfiddle,这样我们就能看到你在做什么吗?
在黑暗中拍摄:您可以使用事件对象,通常是传递给事件侦听器回调函数的第一个参数。然后,您可以执行eventObject.currentTarget.id,它应该是对触发click事件的节点的引用。