1

Я получил dxChart:не dxTooltip работает в IE, работает в Chrome

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

из которых я везу легенду прямоугольники:

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

И используя dxTooltip для показа при наведении курсора мыши ,

  PayerLegendBoxes.each(function() { 



       var nextElementHTML = this.nextSibling.innerHTML; 

       var currElementTip = nextElementHTML + "tip"; 

       var currElement = this; 



       var title = chart.append("<span style='display:none;' id=" + currElementTip + ">" + nextElementHTML + "</span>"); 



       var tooltipSimple = $("#" + currElementTip).dxTooltip({ 

        target: currElement, 

       }).dxTooltip("instance"); 



       $(currElement).unbind().hover(function() { 

        tooltipSimple.toggle() 

       }); 



      }); 

Это прекрасно работает в Chrome, но не в IE.

Есть ли ошибка для кросс-браузера?

+1

Что IE версии вы используете? – Sergey

+0

@Sergey IE10 конкретно – xameeramir

+0

У вас есть ошибки в консоли браузера? – Sergey

ответ

1

Похоже, что проблема в этой строке:

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/