Обработка выделения с помощью javascript

#javascript

#javascript

Вопрос:

Пожалуйста, обратитесь к ссылке на мою диаграмму .

http://www.humblesoftware.com/finance/index (Настроил это)

В основном требование заключается в том, что в определенный момент времени может быть сделан выбор только за один месяц .(Из дочерней диаграммы)

Если выбор сделан с левой стороны, я просто добавляю 30 к другому значению

 xmin = Math.floor(area.x1);
xmax = xmin 30; 
  

Но если выбор сделан с правой стороны, то как с этим справиться??

(Означает, что если xmax выбрано первым, то как я могу обработать xmin значение)??

Комментарии:

1. сделайте наоборот … установите xmax в выбранное значение и xmin в это значение минус 30 дней

2. Спасибо, Чад, ты имеешь в виду xmax = Math.ceil(area.x2); и xmin = xmax-30?? Но как я могу с этим справиться?? пожалуйста, любой пример кода

3. @Chad: То есть, в зависимости от того, где area.x1 нажата кнопка, это потенциально может иметь обратную или форвардную дату? Для конечного пользователя это кажется решением для путаницы.

Ответ №1:

Не зная слишком много о ситуации, что-то вроде этого должно сделать:

 // set the xmin to where they click
xmin = Math.floor(area.x1);

// make x-max the   30 as you normally do
xmax = xmin   30;

// now add a check to make sure we're not off the chart
// if we are, make the chart's last possible X value the
// x max, and subtract 30 from that to go backwards (and
// it may be a good idea to check if xmin is under the
// chart's min x value.
if (xmax > chart.xmax){
  xmax = chart.xmax;
  xmin = xmax - 30;
  if (xmin < chart.xmin){
    xmin = chart.xmin;
  }
}
  

Комментарии:

1. Брэд, таким образом я получаю значения xmin и xmax xmin=Math.floor(area.x1); xmax = Math.ceil(area.x2); не могли бы вы, пожалуйста, рассказать, как работает ваш код??

2. @Kiran: Итак, сверяйте друг с другом, чтобы найти большее число (для верхнего диапазона) и меньшее число (для нижнего диапазона)? xmin = area.x1; xmax = area.x2; if (xmin > xmax){ xmin = xmin xmax; xmax = xmin - xmax; xmin = xmin - xmax; } xmin = Math.floor(xmin); xmax = Math.ceil(xmax); возможно?