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 に答える