Функция jQuery не регистрируется в WordPress

#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:

Функция зарегистрирована, но фактическая проблема вызвана плагином формы вычисляемых полей.