Проблема в том, что jQuery(".date_picker_disabled")
находит элементы с этим классом и связывается с ними. Если у элементов нет класса во время привязки, события не будут обрабатываться.
Функция on
позволяет обойти это, обрабатывая их на другом элементе, когда событие «всплывает» до родительского элемента. В этом случае мы можем сказать элемент body
- может быть более конкретный общий родительский элемент, который вы можете выбрать.
jQuery(document.body).on('click', '.date_picker_disabled', function(event) {
alert('hi');
});
Обработчик событий теперь привязан к элементу document.body
. Все щелчки, которые происходят в любом месте тела, проверяются на предмет соответствия элемента селектора. Если это так, обработчик запускается.
Это объясняется в документации по функции on
. Это то же поведение, что и в предыдущих версиях jQuery с функциями live
и delegate
.
Взглянув на ваш код еще раз, вы установили disabled="disabled"
для вашего элемента input
. click
события не запускаются для отключенных элементов.