現在、私はラファエルで作成されたアリーナ マップを持っています。マップ上の各 svg 要素には、カーソルを合わせるとツールチップが表示されます。ツールチップは、svg 要素の最初のホバーでは表示されませんが、ユーザーが svg 要素を再度入力すると表示されます。
私のaddTip "mouseeneter"関数と関係があると思いますが、JSを理解するのはまだ初めてなので、よくわかりません。これは、ホバー時にツールチップをsvg要素に追加するために使用しているコードです。使用しているコードは、このstackoverflowフォーラムの質問と作成したjsfiddleに基づいていますリンク
var tip = $("#tip").hide();
var tipText = "Tip the Canoe.";
var over = false;
function addTip(node, txt)
{
$(node).mouseenter(function(){
tipText = txt;
tip.fadeIn();
over = true;
})
.mouseleave(function(){
tip.fadeOut();
over = false;
});
}
for (var i = 0, len = rsrGroups.length; i < len; i++) {
var el = rsrGroups[i];
el.mouseover(function() {
addTip(this.node, tipText);
console.log(node);
this.toFront();
this.attr({
cursor: 'pointer',
fill: '#990000',
});
//alert('test');
});
el.mousemove(function(e){
if (over){
tip.css("left", e.clientX+20).css("top", e.clientY+20);
tip.text(tipText);
}
});
el.mouseout(function() {
this.attr({
fill: '#003366'
});
});
el.click(function() {
this.attr({
fill: 'green'
});
});
}