我们正在使用EXTJS 3.1.0
有一个功能,我们必须使用代码向图像添加工具提示:
function loadToolTip(objImageId,entity_id,entity_type){
var objImage = document.getElementById(objImageId);
var tp = new Ext.ToolTip({
target: objImage,
autoLoad: {url: ‘some URL’},
showDelay:500
});
var extObjImage = Ext.get(objImageId);
tp.showAt([extObjImage.getX()+25,extObjImage.getY()+25]);
if(tp.anchorEl){
tp.anchorEl.hide();
}
}
此函数在图像的mouseover
事件上调用。
用户可能会在更改某些数据后以及每次我们必须从服务器获取工具提示内容时对图像进行mouseover
。
面临的问题是,每次我们鼠标悬停时,它都会创建多个工具提示。
理想情况下,我们希望它只显示一次。我们尝试为工具提示对象提供 id,然后在事件发生时.destroy()
mouseout
对象上调用该方法。这也不起作用,有时会给出 JS 错误。
这个或类似的东西应该适合你:
function loadToolTip(objImageId,entity_id,entity_type){
var extObjImage = Ext.get(objImageId);
var tp = objImage.tp;
if(!tp)
{
var objImage = document.getElementById(objImageId);
tp = new Ext.ToolTip({
target: objImage,
autoLoad: {url: ‘some URL’},
showDelay:500
});
extObjImage.tp = tp;
}
tp.showAt([extObjImage.getX()+25,extObjImage.getY()+25]);
if(tp.anchorEl){
tp.anchorEl.hide();
}
}