Закрыть < div > Когда я выложил это

Из названия этого вопроса я ожидал найти что-то вроде range(), что позволило бы мне указать две даты и создать список со всеми датами между ними. Таким образом, не нужно рассчитывать количество дней между этими двумя датами, если заранее не знать об этом.

Таким образом, с учетом того, что он немного не по теме, этот однострочный лайнер выполняет работу :

import datetime
start_date = datetime.date(2011, 01, 01)
end_date   = datetime.date(2014, 01, 01)

dates_2011_2013 = [ start_date + datetime.timedelta(n) for n in range(int ((end_date - start_date).days))]

Все кредиты для этого ответа !

0
задан Matt Smith 18 January 2019 в 14:56
поделиться

1 ответ

Вот способ сделать это, используя tabindex и focusout:

let panel = document.getElementById('menuPanel'),
  button = document.getElementById('menuButton');

button.onclick = checkPanelOn;

panel.addEventListener('focusout', function(event) {
  if (panel.contains(event.relatedTarget)) {
    return;
  }
  checkPanelOn(event);
});

function checkPanelOn(e) {

  e.preventDefault();
  if (panel.classList.contains('on')) {
    panel.classList.remove('on');
  } else {
    panel.classList.add('on');
  }
}
.on {
  display: none;
}
<button id="menuButton">Menu</button>
<div id="menuPanel">
  <ul>
    <li tabindex="0">Name</li>
    <li tabindex="0">Role</li>
    <li tabindex="0">Profile</li>
    <li tabindex="0">Management</li>
  </ul>
</div>
<button>Outside button</button>

[1110 ] JSFiddle: https://jsfiddle.net/nzmtL1od/

0
ответ дан Islam Elshobokshy 18 January 2019 в 14:56
поделиться
Другие вопросы по тегам:

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