2017-06-14 19 views
0

我有一个使用raphael的画布,我将绘制一些图像。 图像的名称在列表中:images_list,我将绘制三行图像。所有的图像具有相同的尺寸,均匀分布并且是.png文件(无矢量)。 一些示例代码:意识到图片在Raphael点击

var paper_images_list = Raphael(canvas_images_list, '100%', '100%'); 
var images_for_row=3 
var y_max=Math.ceil(image_list.length/images_for_row)*40 
paper_images_list.setSize(div_width, y_max); 
for (var i=0; i<image_list.length; i++) { 
     var col=parseInt(i/images_for_row) 
     var y=col*40 
     var x=(i-images_for_row*col)*40 
     var image = paper_images_list.image('/media/images/'+image_list[i], x, y, 33, 27); 
    }; 

我想要什么:点击我想知道哪个形象是一个形象,在另文/帆布使用它。

我使用拉斐尔,因为我认为它可以使这个容易,但也许我错了。是否可以识别图像,然后点击它?

如果没有,我可以找到点击的坐标并计算出哪个图像,但是我不需要Raphael,对吧?有更好的解决方案?

我使用Phyton3.5,Django的1.9,使用Javascript/jQuery的Windows7的

+1

您的点击处理程序应该能够显示它是哪个。如果每个元素都有一个点击处理程序,那么'this'将指向相应的图像。如果你有一个通用的处理程序,那么你可以通过查看event.target来看看它是什么。 – Ian

回答

0

感谢伊恩,我发现它是如此的简单,如:

document.getElementById('canvas_images_list').onclick=function(event) { 
    var myimage = event.target 
    if (myimage.tagName == 'image') { 
     myimage = myimage.href.baseVal; 
    }; 
}; 

if声明排除了任何图像之外的点击