#javascript #php #jquery #wordpress #enqueue
#javascript #php #jquery #wordpress #очередь
Вопрос:
Я пытаюсь добавить скрипт на свой сайт WordPress. Используя jQuery, я хочу добавить событие «onChange» к числовому вводу (который принадлежит плагину формы вычисляемых полей).
Когда я что-то ввожу в поле ввода, ничего не происходит. Он должен был быть напечатан onChange
в консоли.
Итак, проблема в том, что функции jQuery не регистрируются.
HTML:
<input id="fieldname2_1" name="fieldname2_1" min="1" type="number">
functions.php файл:
function numeric_input_script() {
wp_enqueue_script(
'numeric-input', // naming my script so that i can attach other scripts and de-register, etc.
get_stylesheet_directory_uri() . '/numeric-input.js', // this is the location of the script file
array('jquery'), // this array lists the scripts upon which my script depends
null, // version number
true // states that the script needs to be loaded in the footer
);
}
add_action( 'wp_enqueue_scripts', 'numeric_input_script' );
JS-файл:
jQuery(document).ready(function($) {
console.log('Loading'); //shows up
$('#fieldname2_1').on('change', function() {
console.log("onChange"); //code inside this function does not work
})
console.log('Loaded'); //shows up
});
Вещи, которые я пробовал, но безуспешно:
- кнопки и другие события;
- постановка скрипта в очередь после заголовка (последний параметр
wp_enqueue_script
имеет значение false); - использование
var j = jQuery.noConflict();
и использованиеj
вместо$
.
Любая помощь будет оценена. Спасибо!
Комментарии:
1. Я предполагаю, что проблема связана с плагином. Можете ли вы рассказать больше об этом плагине?
2. Я провел несколько тестов, и вы правы. Плагин называется формой вычисляемых полей. Есть идеи, как это исправить?
Ответ №1:
Использование:
jQuery('#fieldname2_1').on('change', function() {
console.log("onChange"); //code inside this function does not work
})
$
Псевдоним не привязан, чтобы избежать конфликта
Комментарии:
1. Это не проблема, поскольку я указал
$
в качестве параметра функцию document ready . Я обнаружил, что проблема вызвана плагином, о котором я упоминал.
Ответ №2:
Функция зарегистрирована, но фактическая проблема вызвана плагином формы вычисляемых полей.