Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как отменить клик? (https://javascript.ru/forum/events/84533-kak-otmenit-klik.html)

ureech 09.10.2022 20:58

Как отменить клик?
 
Привет. Ковыряю клендарь evo-calendar

Там есть метод клика по дате.
$('.wd_app_calendar').on('selectDate', function (e) {...})


(На $('.wd_app_calendar') происходит инициализация календаря).

При задании дню какого либо мероприятия в контейнер даты добавляются html строки
<span class="event-calendar">...</span>


Мне нужно запретить клик по этим числам. Начал делать так. Получил объекты чисел и тем у кого есть в дочерних этот span присвоил класс diss
var days = document.querySelectorAll('.day');
  days.forEach(function(item, i, days) {
    var f = $(item).find('.event-indicator');
    if(f.length)$(item).addClass('diss')   
  });


Теперь как мне при клике на число, отменить клик?

рони 09.10.2022 22:36

ureech,
что делает клик?

ureech 10.10.2022 09:46

Цитата:

Сообщение от рони
что делает клик?

Меняет классы, посылает запрос(или нет, в зависимости от условий), присоеденяет данные с помощью data()

ureech 10.10.2022 09:49

Пытался сделать так
$('.wd_app_calendar').on('selectDate', function (e) {

  days.forEach(function(item, i, days) {
  if($(item)[0].classList.contains('diss')){
  e.preventDefault();
  return false;
}
  });
...
});

Но не работает. Подозреваю, потому, что клик по другому селектору или хз)

рони 10.10.2022 12:12

ureech,
нафиг классы, подозреваю что есть массив дат, сравните дату по которой клинули с этим массивом, и делайте что вам нужно если даты нет в этом массиве.
примерно так
$('.wd_app_calendar').on('selectDate', function (e, date) {if(!dates.find(obj => obj.date === date))  {/* что-то делаем */}})

ureech 10.10.2022 15:50

Ок спасибо. Мысль понятна. Буду пробовать.


Часовой пояс GMT +3, время: 11:04.