我知道这不起作用:
SVGPathElement.prototype.onmouseover=function(){
alert("info");
}
我想将事件监听器添加到元素的原型中,所以每次创建这样的元素时它都会自动获得这个事件监听器。我怎么能用上面的原型来做呢?
答案 0 :(得分:0)
您需要使用事件委派。
procedure TfrmWines.AutoSetDataChange(Sender: TObject; Field: TField);
var
Fld: TField;
JPG: TJPEGImage;
strm: TStream;
begin
Fld := wdatamod.mywines.FieldByName('winelabel');
if TBlobField(Fld).BlobSize > 0 then
begin
JPG := TJPEGImage.Create;
try
strm := Fld.DataSet.CreateBlobStream(Fld, bmRead);
try
JPG.LoadFromStream(strm);
finally
strm.Free;
end;
Image1.Picture.Assign(JPG);
finally
JPG.Free;
end;
end else
begin
Image1.Picture.LoadFromFile('q:\sourcecode\mycellar\images\blk_wht_glass.jpg');
end;
end;
您可以将mouseover事件处理程序附加到document.getElementsByTagName("body")[0].addEventListener("mouseover", function(e) {
if(e.target && e.target.nodeName === "path") {
console.log("SVG Path element clicked);
}
});
元素,并在节点名称是您要查找的节点名称时调用逻辑。