dxTooltip无法在IE中工作,在Chrome中工作

我有一个dxChart

  var chart = $("#chartContainer4").dxChart(); 

其中我正在采用传说中的矩形:

  var PayerLegendBoxes = $("#chartContainer4 .dxc-legend g rect"); 

并使用dxTooltip在鼠标hover时显示。

  PayerLegendBoxes.each(function () { var nextElementHTML = this.nextSibling.innerHTML; var currElementTip = nextElementHTML + "tip"; var currElement = this; var title = chart.append("" + nextElementHTML + ""); var tooltipSimple = $("#" + currElementTip).dxTooltip({ target: currElement, }).dxTooltip("instance"); $(currElement).unbind().hover(function () { tooltipSimple.toggle() }); }); 

这在Chrome中运行良好,但在IE中却不行。

是否存在跨浏览器function的错误?

看起来问题出在这一行:

 var nextElementHTML = this.nextSibling.innerHTML; 

nextSibling.innerHTML在IE中返回undefined 。 所以,我建议你使用这样的东西:

 // jQuery provides a "cross-browser" way here var nextElementHTML = $(this).next().text(); 

还有一条针对这条线的修正:

 var currElementTip = nextElementHTML + "tip"; 

nextElementHTML有时可以包含空格符号。 所以,你应该消毒它:

 var currElementTip = (nextElementHTML + "tip").replace(/\s/g, "_"); 

更新的样本在这里 – http://jsfiddle.net/5y8f4zt0/