Учитывая общее количество, определите, сколько раз значение войдет в него

Если я правильно понял, вы хотите, чтобы поповер закрывался, когда пользователь щелкает практически везде, кроме внутренней части самого поповера, за исключением кнопки фактического закрытия. Это может быть выполнено с помощью прослушивателя событий:

$('html').click(function() {
    if(!$(event.target).is('#foo')) {
        // Code to hide/remove popovers
    }
});

Проверьте этот plunkr .

Или, в вашем конкретном сценарии:

$('html').click(function() {
    if(!$(event.target).is('.my-popover-class')) {
        vm.togglePopover = false;
    }
})

6
задан Mike 30 November 2012 в 14:07
поделиться

6 ответов

Где целые числа capacity и numItems - это вместимость вашего ящика (53 в примере) и общее количество элементов. у вас есть два следующих вычисления:

int numBoxes = numItems / capacity;
int remainder = numItems % capacity;

Это даст вам количество заполненных полей ( numBoxes ) и количество элементов в дополнительном поле ( остаток ), если таковые необходимы, поскольку это значение может быть 0.

Изменить: как Люк указал в комментариях, вы можете получить тот же результат с помощью функции библиотеки классов .NET Math.DivRem .

int remainder;
int numBoxes = Math.DivRem( numItems, capacity, out remainder );

Эта функция возвращает частное, а остаток помещает в выходной параметр.

17
ответ дан 8 December 2019 в 03:40
поделиться

простой, чрезмерно императивный пример:

int itemsPerBox = 53;
int totalItems = 56;
int remainder = 0;
int boxes = Math.DivRem(totalItems, itemsPerBox, out remainder);
for(int i = 0; i <= boxes; i++){
    int itemsincurrentbox = i == boxes ? remainder : itemsPerBox;
}
8
ответ дан 8 December 2019 в 03:40
поделиться

Используйте оператор модуля, чтобы определить остаток. Быстрый пример:

int totalBoxes = Math.Ceiling(Convert.ToDecimal(intFeet / 53));

List<int> boxes = new List<int>();
for (int i=0; i< totalBoxes; i++)
{
  if (i == totalBoxes-1) 
      boxes.Add(intFeet % 53)
  else 
      boxes.Add(53);
}
1
ответ дан 8 December 2019 в 03:40
поделиться

попробуйте использовать модуль?

x % y
1
ответ дан 8 December 2019 в 03:40
поделиться

Если я правильно понимаю вопрос, все поля, кроме последнего, будут содержать 53 элемента, а последний box будет содержать intFeet% 53 (intFeet mod 53 или остаток после деления intFeet и 53).

Однако цикл не нужен для ответа на ваш вопрос;

int totalItems = 56;
int boxes = Math.Ceiling(Convert.ToDecimal(totalItems / 53)) + 1;
for(int i=0; i< boxes;i++)
{
   int numberInBoxes = i != boxes -1 ? 53 : totalItems % 53;
}
1
ответ дан 8 December 2019 в 03:40
поделиться

Все поля, кроме последнего, будут содержать 53 элемента. Что касается вычисления количества полных ящиков и количества элементов в последнем поле, найдите целочисленное деление и модуль.

0
ответ дан 8 December 2019 в 03:40
поделиться
Другие вопросы по тегам:

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