有没有可能使用jQuery引用在HTML5画布元素上绘制的图形?这里是我为EaselJS编写的一个函数,它遍历包含矢量坐标数组的对象:
function newShape(obj,shape,coords){
obj.graphics.beginFill('green');
obj.alpha = 0.05;
for (var i=0; i<coords[shape].length; i+=2) {
var arr = coords[shape].slice(i,i+2);
obj.graphics.lineTo(arr[0],arr[1]);
}
obj.graphics.closePath();
obj.graphics.endFill();
stage.addChild(obj);
}
coords对象看起来像这样,有数百个点:
var coords = {};
coords['0'] = [214,266,214,291,194,291];
coords['1'] = [243,1,254,2,278,9,290,14];
coords['2'] = [109,112,116,114,129,117];
并且这个阶段:
canvas = document.getElementById("canvas");
stage = new createjs.Stage(canvas);
shape1 = new createjs.Shape();
shape2 = new createjs.Shape();
shape3 = new createjs.Shape();
newShape(shape1,'shape1',coords);
newShape(shape2,'shape2',coords);
newShape(shape3,'shape3',coords);
我可以为渲染的形状添加点击/触摸事件监听器,但我希望能够将每个图形作为DOM元素进行引用,以便与像Bootstrap Popover和niceScroll这样的插件一起使用,例如:
$(shape1). popover('show'); 。我一直在积极寻找解决方案,但没有成功,任何帮助都将不胜感激!
Object.defineProperty
添加伪属性,这些属性的名称与相关的DOM属性相同,将更改任何内部属性以模拟发生在DOM节点上的效果。但是,不能保证这些插件甚至jQuery本身不会进行类型检查,以确保它们正在使用DOM节点。 - Shmiddty