2

我们正在使用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 错误。

4

1 回答 1

1

这个或类似的东西应该适合你:

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();
  }

}

于 2012-11-16T15:31:40.417 回答