.show () не работает с готовым документом

#javascript #jquery

#javascript #jquery

Вопрос:

Я запускаю событие onchange, которое у меня есть в текстовом поле при загрузке страницы

 $(document).ready(function () {
   $("input[id$=dpDeliveryDate]").each(function () {
       $(this).get(0).onchange();
   });
});
  

Это запускается корректно и вызывает созданную мной функцию.

Если я добавлю оповещения в эту функцию, она будет предупреждать о правильной загрузке страницы. Итак, я отлично знаю, что он вызывает функцию! но не выполняет остальные команды в функции

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

Функция в основном должна выполнять

  $(this).parent().next().next().show();
  

Итак, я не могу понять, почему это работает onchange, но не тогда, когда onchange запускается из document.load?

Комментарии:

1. Вы проверили свою консоль на наличие каких-либо ошибок? похоже, что это может быть, если это останавливает выполнение в середине функции

2. Пожалуйста, покажите нам вашу .change() функцию-обработчик.

Ответ №1:

Изменить

 $(this).get(0).onchange();
  

Для

 $(this).change();
  

Комментарии:

1. пробовал, но не работает, как я уже сказал, я знаю, что функция вызывается просто отлично..

2. @Steve ‘this’ по-прежнему ссылается на узел dom с помощью встроенного onchange(), а не jQuery change()?

3. Если мы говорим о более простом коде, $("input[id$=dpDeliveryDate]").change(); было бы достаточно. Но это не решает проблему OP, было бы неплохо в качестве комментария.