Yahoo! UI を使ったら困った現象発生! ・・・ こんどこそ解決か?
Yahoo! UI を使ったら困った現象発生! ・・・ やっと解決か?で書いた対処ですが、実はまだ問題がありました。 マウスを早く動かすとツールチップがたくさん標示されてしまうのです ^^);
いろいろ試してみましたがダメでした・・・ 原理的に考えて、このやり方には無理があるみたいです。
そこで、かなり力業ですがツールチップを表示するさいには他のツールチップに mouseout(マウスが領域を出たイベント)を送り、ツールチップを消すようにしました。幸いにツールチップの情報はHashにキャッシュしてるので追加したコードはわずかです。
function makeTooptipAndShow(o, id, prefix, title) { var t = new YAHOO.widget.Tooltip(prefix + "Tooltip" + id, {context: prefix + id, text: "<b>" + title + "</b><br/>" + o.responseText}); for (var k in tooltipHash) { if (tooltipHash[k]) tooltipHash[k].onContextMouseOut(o.argument, tooltipHash[k]); } tooltipHash[prefix + id] = t; t.onContextMouseMove(o.argument, t); t.onContextMouseOver(o.argument, t); }
赤い部分が追加したコードです。スマートではないですが、これで解決したようです。