我想要在激活非文件夹节点时显示图像。
由于某种原因,在为该节点触发onActivate
事件至少至少两次之前(即通过访问另一个节点,然后返回到相关节点),将不会显示节点的图像。
我尝试了几种解决方法。对我有用的唯一方法是使用onRender
事件处理程序而不是onActivate
,但这大大降低了生产中树的速度(在任何给定时间可能显示5000多个节点)。
我也相信我已按照他对类似问题@pimvdb和here的回答中提供的所有建议here,但无济于事。我已经尝试在声明src
函数之前和之后设置图像onload
,但这似乎无关紧要。
任何指针都会受到赞赏。
P.S。在您看到此问题后,您可能必须清除缓存以再次查看它。
答案 0 :(得分:0)
显然,图像正在加载正常,问题是如何/当我为图像调整画布大小时。 Here是修复的jsFiddle。我改变了这个......
function loadImage(node) {
var imageObj = new Image();
imageObj.onload = function() {
ctx.drawImage(imageObj, 0, 0);
};
imageObj.src = node.data.imageUrl;
canvasObj.attr("height", imageObj.height + "px");
canvasObj.attr("width", imageObj.width + "px");
}
到此......
function loadImage(node) {
var imageObj = new Image();
imageObj.onload = function() {
canvasObj.attr("height", imageObj.height + "px");
canvasObj.attr("width", imageObj.width + "px");
ctx.drawImage(imageObj, 0, 0);
};
imageObj.src = node.data.imageUrl;
}