Сделайте что-нибудь, если тип продукта изменен

#jquery #woocommerce

#jquery #woocommerce

Вопрос:

У меня есть пользовательский тип продукта WooCommerce. Если вы переключились между стандартным типом WooCommerce, ввод очищается, но это не работает для пользовательских типов.

Итак, я создал jQuery для этого

 $('#product-type').on('change', function() {
  //do something
});
 

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

Что я могу сделать, чтобы это работало, только если тип продукта меняется

Ответ №1:

WooCommerce устанавливает тип продукта с помощью JavaScript и не устанавливается с помощью PHP. Они используют функцию изменения, если страница загружается, и устанавливают правильный тип продукта на экране.

Если вам нужна функция для определенного типа продукта, вы можете сделать что-то вроде этого

 $('#product-type').on('change', function() {
    if($('#product-type').val() == '//your type'){
        //do something
    }
});
 

Ответ №2:

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

 $(document).ready(function(){

    $('#product-type').on('change', function() {
        //do something
    });

});
 

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

1. Привет, Фернандо, спасибо за реакцию. Я пробовал это, но это не исправило проблему. Очень странно, что функция on change запускается, если страница загружена.

2. Привет, Ян, всегда пожалуйста. Давайте попробуем установить точку останова в прослушивателе событий через Chrome. Нажмите F12, чтобы открыть консоль> Перейдите на вкладку «Источник»> на правой панели найдите «Точка останова прослушивателя событий», а затем разверните список «управление» и отметьте событие «изменить», чтобы вы могли отлаживать свой js-код. Это будет прерываться при каждом запуске события изменения.

3. Привет, Фернандо, я последовал вашему совету, и chrome говорит «нет точек останова»