Выполните действие над div в определенный период времени (jQuery) - PullRequest
1 голос
/ 30 сентября 2019

Я хочу выполнить действие над элементом div, основываясь на том, что это iPad, и в определенное время. Div должен быть кликабельным с 23:00 до 15:00, а затем не должен.

У меня есть текущий код:

var deviceAgent = navigator.userAgent.toLowerCase();
var agentID = deviceAgent.match(/ipad/);
var pDate = new Date();
var pHour = pDate.getHours();

if (agentID && (pHour >= 23) && (pHour < 15))  {
} else if (agentID && (pHour >= 15 && pHour < 22)) {
  $( ".menu-item-remove" ).click(function(e) {
    e.preventDefault();
    alert("Frokost serveres kun mellem kl. 11:00 & 15:00");
  });

Это просто кажется сломанным. Это хорошо работает, если я скажу, что нужно перейти с 23 до 15, а затем снова начать с 16 до 22. В противном случае он сломается. Он просто должен сделать предупреждение и не допускать щелчка в любое время, кроме как между 23 и 15 на следующий день. Это единственный раз, когда на него нужно кликать!

Заранее спасибо.

1 Ответ

0 голосов
/ 30 сентября 2019

Я думаю, что ваша проблема в этом (pHour >= 23) && (pHour < 15)

Время (pHour) не может быть выше 23 и ниже 15 одновременно. так что попробуйте с ((pHour >= 23) || (pHour < 15)

Демо

var deviceAgent = navigator.userAgent.toLowerCase();
var agentID = deviceAgent.match(/ipad/);
var pDate = new Date();
pDate.setTime(pDate.getTime() + 18000000);
var pHour = pDate.getHours();
console.log(pHour)
if (!agentID && ((pHour >= 23) || (pHour < 15))) {
  $(".menu-item-remove").click(function(e) {
    e.preventDefault();
    alert("You can now order lunch");

  });


} else if (!agentID && (pHour >= 9 && pHour < 22)) {
  $(".menu-item-remove").click(function(e) {
    e.preventDefault();
    alert("Frokost serveres kun mellem kl. 11:00 & 15:00");

  });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<div class="menu-item-remove">Order lunch</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...