работа с событиями плагина jQuery

299
17 сентября 2017, 02:28

Использую в проекте плагин "air-datepicker". В нем есть собственные описанные события. пример события блокирующий дни:

let disabledDays = [0, 6];
$('#Date').datepicker({
onRenderCell: function (date, cellType) {
    if (cellType == 'day') {
        var day = date.getDay(),
            isDisabled = disabledDays.indexOf(day) != -1;
        return {
            disabled: isDisabled
        }
    }
}}) ;

$('#Date').datepicker({ вызов плагина (как Я понимаю).

onRenderCell: function (date, cellType) { само событие.

И так мой первый вопрос: Как с этим работать? в силу не опытности Я просто не понимаю.

Например, нельзя написать два события в одном $('#Date').datepicker({ то есть код:

$('#Date').datepicker({
onSelect: function(formattedDate, date, inst){
   if (formattedDate == 1) {
        var day = date.getDay(),
            isDisabled = disabledDays.indexOf(day) != -1;
        return {
        }
    }
    };
onRenderCell: function (date, cellType) {
    if (cellType == 'day') {
        var day = date.getDay(),
            isDisabled = disabledDays.indexOf(day) != -1;
        return {
            disabled: isDisabled
        }
    }
} });

Не будет работать с ошибкой: Unexpected identifier. Почему? Я не знаю(

Вообще мне нужно, чтобы работал такой код:

`$('#Date').datepicker({
onSelect: function(formattedDate, date, inst){
        var SelectDay = date.getDay(),
       switch(SelectDay) {
           case 0:
               var BlockWeek = 4;
               break;
           case 1:
               var BlockWeek = 3;
               break;
           case 2:
               var BlockWeek = 2;
               break;
           case 3:
               var BlockWeek = 1;
               break;
           case 4:
               var BlockWeek = 0;
               break;
       },
    alert(BlockWeek);
    }});`

но в итоге такой код вылетает с ошибкой Unexpected token switch, если же заменить , после вар на ; то ошибка будет: date.getDay() it's not a function

что Я именно делаю не так? если Я не правильно работаю изначально с этим, тогда что это? и как нужно прописывать в таких ситуациях?

P.S. Чукча не писатель, простите.

ссылка на страницу плагина для скачки

ссылка на пример кода

Answer 1

Ошибка возникает из-за того, что в аргументе date вы получаете строку и сразу пытаетесь получить из нее день.

Для начача нужно преобразовать полученную строку в объект времени, а потому уже применять метод getDate():

let disabledDays = [0, 6]; 
$('#Date').datepicker({ 
  onRenderCell: function(date, cellType) { 
    if (cellType == 'day') { 
      var day = date.getDay(), 
        isDisabled = disabledDays.indexOf(day) != -1; 
      return { 
        disabled: isDisabled 
      } 
    } 
  }, 
  onSelect: function(formattedDate, date, inst) { 
    var SelectDay = new Date(date).getDay(); // преобразовываем строку в объект времени и получаем из него день 
    switch (SelectDay) { 
      case 0: 
        var BlockWeek = 4; 
        break; 
      case 1: 
        var BlockWeek = 3; 
        break; 
      case 2: 
        var BlockWeek = 2; 
        break; 
      case 3: 
        var BlockWeek = 1; 
        break; 
      case 4: 
        var BlockWeek = 0; 
        break; 
    } 
    alert(BlockWeek); 
  } 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<link href="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/css/datepicker.css" rel="stylesheet" /> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/air-datepicker/2.2.3/js/datepicker.js"></script> 
<div> 
  <input id="Date" type="text" name="calendar" class="datepicker-here" data-range="true" data-toggleselected="false" data-multiple-dates-separator=" - " placeholder="нажмите для выбора"> 
</div>

READ ALSO
VueJs createElement и $refs

VueJs createElement и $refs

Всем приветПодскажите пожалуйста как изменить значение свойства одного компонента из другого ? Т

267
javascript spoiler помогите сделать спойлер

javascript spoiler помогите сделать спойлер

Есть шапка чата, и ниже есть сам блок чата где летят сообщенькиПомогите написать простенький код, что бы при нажатии на иконку icon-down блок чата...

275
Передать значение в route vue js \ quasar Framework

Передать значение в route vue js \ quasar Framework

Есть компонент, который внутри использует v-for:

282
С помощью чего сделан этот сайт? [требует правки]

С помощью чего сделан этот сайт? [требует правки]

https://web-alliancesu/ - какие библиотеки или фреймворки использовались для создания эффектов постепенной отрисовки изображения, кнопок для бега...

170