我懷疑你遇到的問題是,爲工具提示顯示的新路徑/元素會干擾鼠標事件,從而阻止事件的發生。因此,如果拖動/移動,Raphael可能會對鼠標事件有點費勁。這可能有幾種不同的方式。人們可能會更全面地處理事件並決定如何處理它們,或者如果您不介意,請將工具提示從光標位置稍微移動一點。
arc.mouseover(function (e) {
x = e.pageX + 50;
y = e.pageY;
draw_tooltip(this, 1, display_text, x, y);
});
arc.mouseout(function(e) {
popup.remove();
popup_txt.remove();
transparent_txt.remove();
});
arc.mousemove(function(e) {
popup.attr({ x: e.pageX - 70, y: e.pageY - 70 });
popup_txt.attr({ x: e.pageX - 25, y: e.pageY - 45});
transparent_txt.attr({ x: e.pageX - 120, y: e.pageY - 120 });
});
}
我也改變了路徑的一個矩形和幾個位,但最主要的是保持提示從事件的位置了。否則,我不知道你是否需要從jquery處理它,或者可能需要處理附加到弧以外的其他元素的處理程序,這可能取決於頁面的複雜性。看看這個解決方案是否可行。
這裏提琴http://jsfiddle.net/74YNb/13/(文本對齊可能需要調整所有瀏覽器)
來源
2013-11-28 14:57:31
Ian
謝謝。這似乎在小提琴上奏效。但是我需要嘗試其他方法,因爲圖表包含更復雜的數據。我一定會記住你的解決方案! –
我認爲如果有更復雜的數據,只要沒有很多對象相互重疊,解決方案就可以工作。如果你提出了一個新的問題和其他任何問題,我相信人們會找到一種方法。如果你發現你做了很多,你可能會覺得值得看看d3 svg項目,它更適合處理圖表和數據,並且已經相當成熟。 – Ian