Устанавливание булева значения на основе целого числа

Вы также можете обернуть метод drawLegendSymbol в круговой прототип и визуализировать все, что хотите, без каких-либо ограничений. Вам понадобятся те же события и методы, которые предлагает @ppotaczek.

(function(H) {
  H.wrap(H.seriesTypes.pie.prototype, 'drawLegendSymbol', function(proceed, legend, item) {
var options = legend.options,
  symbolHeight = legend.symbolHeight,
  square = options.squareSymbol,
  symbolWidth = square ? symbolHeight : legend.symbolWidth;
var series = this;
var halo;

item.legendSymbol = series.chart.renderer.rect(
    square ? (legend.symbolWidth - symbolHeight) / 2 : 0,
    legend.baseline - symbolHeight + 1, // #3988
    symbolWidth,
    symbolHeight,
    H.pick(legend.options.symbolRadius, symbolHeight / 2)
  )
  .addClass('highcharts-point')
  .attr({
    zIndex: 4
  }).add(item.legendGroup);

H.addEvent(item.legendItem.element, 'mouseover', function() {

  halo = series.chart.renderer.rect(
      square ? (legend.symbolWidth - symbolHeight) / 2 : 0,
      legend.baseline - symbolHeight + 1, // #3988
      symbolWidth,
      symbolHeight,
      H.pick(legend.options.symbolRadius, symbolHeight / 2)
    )
    .addClass('highcharts-point')
    .attr({
      fill: item.color,
      'fill-opacity': 0.25,
      zIndex: 1
    })
    .add(item.legendGroup);

    halo.animate({
      width: symbolWidth * 1.8,
      height: symbolHeight * 1.8,
      translateX: -symbolWidth * 0.4,
      translateY: -symbolHeight * 0.4,
      r: H.pick(legend.options.symbolRadius, symbolHeight / 2 + symbolHeight * 0.4)
    }, 0);
  });

  H.addEvent(item.legendItem.element, 'mouseout', function() {
    halo.animate({
      width: symbolWidth,
      height: symbolHeight,
      translateX: 0,
      translateY: 0,
      r: 0
    });
  });
})
})(Highcharts)

jsFiddle: https://jsfiddle.net/BlackLabel/5beq3psn/

6
задан chills42 7 January 2009 в 14:03
поделиться

5 ответов

Да, это - точно то же.

Да, последний более читаем.

32
ответ дан 8 December 2019 в 02:24
поделиться

Нет, нет никакой практической причины использования первой версии, мир не прекрасен, и ни один не программисты.

1
ответ дан 8 December 2019 в 02:24
поделиться

Удобочитаемость зависит от того, где Вы используете эту конструкцию. Я часто нахожу что-то как

(TestStateID == 1 ? true : false)

более читаемый.

0
ответ дан 8 December 2019 в 02:24
поделиться
IsTestActive = (TestStateID == 1);

определенно более читаемо.

Вы могли изложить доводы для определения константы

ACTIVE = 1

затем замена логической переменной IsTestActive с

(TestStateID == ACTIVE)

Путем код теперь, состояние булевской переменной IsTestActive будет ошибочно если состояние TestStateID изменения, не обновляя булевскую переменную. Обход булевской переменной и тестирование реального источника информации, которая Вы после, удалят возможность этой ошибки.

5
ответ дан 8 December 2019 в 02:24
поделиться

Ну, я не знаю о других языках, но в PHP это еще проще, используя приведение типов:

$IsTestActive = (boolean)$TestStateId;
0
ответ дан 8 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: