#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 говорит «нет точек останова»