我们正在使用 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 赋予工具提示对象,然后在 mouseout
事件发生时对该对象调用 .destroy()
方法。这也不起作用,有时会出现 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();
}
关于javascript - 需要与 EXT JS 工具提示功能相关的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13412736/