如何解决jQuery flot mouseleave对我不起作用
| 我已经对我的jQuery.flot.js和flot.pie.js进行了一些修改,以使我的派画布具有鼠标离开的效果。 在第585行flot.pie.jsfunction onMouseMove(e) {
triggerClickHoverEvent(\'plothover\',e);
}
function onMouseLeave(e) {
triggerClickHoverEvent(\'plotleave\',e);
}
function onClick(e) {
triggerClickHoverEvent(\'plotclick\',e);
}
在第127行上flot.pie.js
if (options.series.pie.show && options.grid.hoverable) {
eventHolder.unbind(\'mousemove\').mousemove(onMouseMove);
eventHolder.unbind(\'mouseleave\').mouseleave(onMouseLeave);
}
在我的JavaScript mysite.html中
$(\"#graph1\").bind(\"plothover\",pieHover);
$(\"#graph1\").bind(\"plotleave\",pieLeave);
$(\"#graph1\").bind(\"plotclick\",pieClick);
函数mysite.html
function pieHover(event,pos,obj) {
if (!obj) return;
var what = obj.series.name;
$(\"a[name=\" + what + \"]\").addClass(\"hover\");
$(\"#world #\" + what + \" path\",svg.root()).attr(\"fill\",\"url(#orange)\");
$(\"#world #\" + what + \" path.water\",\"#92D7E7\");
}
function pieLeave(event,obj) {
if (!obj) return;
var what = obj.series.name;
$(\"a[name=\" + what + \"]\").removeClass(\"hover\");
$(\"#world #\" + what + \" path\",\"#68CDF2\");
$(\"#world #\" + what + \" path.water\",\"#B9E4EE\");
}
function pieClick(event,obj) {
if (!obj) return;
percent = parseFloat(obj.series.percent).toFixed(2);
alert(\'\' + obj.series.label + \': \' + percent + \'%\');
}
我的pieLeave函数被完全忽略了。问题是什么?谢谢您的帮助。
更多信息:flot示例
解决方法
好吧,发生了您根本无法在情节上使用mouseleave,因为情节是整个画布容器,如果将所有内容都绑定到mousemove并检查对象的na
function pieHover(event,pos,obj)
{
if (!obj) { // if no object (move out of the plot,clear everything)
$(\"a\").removeClass(\"hover\");
$(\"#world g path\",svg.root()).attr(\"fill\",\"#68CDF2\");
$(\"#world g path.water\",\"#B9E4EE\");
// return;
}
else { // clear everything,do something.
what = obj.series.name;
$(\"a\").removeClass(\"hover\");
$(\"#world g path\",\"#B9E4EE\");
$(\"a[name=\"+what+\"]\").addClass(\"hover\");
$(\"#world #\"+what+\" path\",\"url(#orange)\");
$(\"#world #\"+what+\" path.water\",\"#92D7E7\");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。