diff --git a/src/chart/graph/GraphView.js b/src/chart/graph/GraphView.js index 01d6f745f52f0c98cb137a36b2587e1db6b16f88..27f0bd1574e19ba6a03dc1e04357d54c0b391b59 100644 --- a/src/chart/graph/GraphView.js +++ b/src/chart/graph/GraphView.js @@ -27,6 +27,8 @@ import {onIrrelevantElement} from '../../component/helper/cursorHelper'; import * as graphic from '../../util/graphic'; import adjustEdge from './adjustEdge'; +var FOCUS_ADJACENCY = '__focusNodeAdjacency'; +var UNFOCUS_ADJACENCY = '__unfocusNodeAdjacency'; var nodeOpacityPath = ['itemStyle', 'opacity']; var lineOpacityPath = ['lineStyle', 'opacity']; @@ -151,24 +153,23 @@ export default echarts.extendChartView({ } el.setDraggable(draggable && forceLayout); - el.off('mouseover', el.__focusNodeAdjacency); - el.off('mouseout', el.__unfocusNodeAdjacency); + el[FOCUS_ADJACENCY] && el.off('mouseover', el[FOCUS_ADJACENCY]); + el[UNFOCUS_ADJACENCY] && el.off('mouseout', el[UNFOCUS_ADJACENCY]); if (itemModel.get('focusNodeAdjacency')) { - el.on('mouseover', el.__focusNodeAdjacency = function () { + el.on('mouseover', el[FOCUS_ADJACENCY] = function () { api.dispatchAction({ type: 'focusNodeAdjacency', seriesId: seriesModel.id, dataIndex: el.dataIndex }); }); - el.on('mouseout', el.__unfocusNodeAdjacency = function () { + el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () { api.dispatchAction({ type: 'unfocusNodeAdjacency', seriesId: seriesModel.id }); }); - } }, this); @@ -176,18 +177,18 @@ export default echarts.extendChartView({ data.graph.eachEdge(function (edge) { var el = edge.getGraphicEl(); - el.off('mouseover', el.__focusNodeAdjacency); - el.off('mouseout', el.__unfocusNodeAdjacency); + el[FOCUS_ADJACENCY] && el.off('mouseover', el[FOCUS_ADJACENCY]); + el[UNFOCUS_ADJACENCY] && el.off('mouseout', el[UNFOCUS_ADJACENCY]); if (edge.getModel().get('focusNodeAdjacency')) { - el.on('mouseover', el.__focusNodeAdjacency = function () { + el.on('mouseover', el[FOCUS_ADJACENCY] = function () { api.dispatchAction({ type: 'focusNodeAdjacency', seriesId: seriesModel.id, edgeDataIndex: edge.dataIndex }); }); - el.on('mouseout', el.__unfocusNodeAdjacency = function () { + el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () { api.dispatchAction({ type: 'unfocusNodeAdjacency', seriesId: seriesModel.id diff --git a/test/graph-simple.html b/test/graph-simple.html index 0fcbe9e7e9d2d42b162ca2b5c6aef3fb47c2a77f..8478a3f9ba842d5afc1083dfa6401ef27f5e5667 100644 --- a/test/graph-simple.html +++ b/test/graph-simple.html @@ -24,132 +24,170 @@ under the License. + +
- - hover node3, edge label should be displayed. - 节点1 should display value in tooltip. - + + + + +