Tengo dos archivos JavaScript en mi tema personalizado. Un archivo tiene funciones que deben usarse en el otro archivo. Lo que tengo a continuación no funciona. Este es el error que recibo.
Error de referencia no capturado: la prueba no está definida.
jQuery se utilizará en ambos archivos.
/** * @file * UI behaviors */ (function ($, Drupal) { 'use strict'; $(document).ready(function () { function test(){ console.log('hello'): } }); })(jQuery, Drupal); /** * @file * UI behaviors */ (function ($, Drupal) { 'use strict'; $(document).ready(function () { test(); }); })(jQuery, Drupal); scripts: js: js/file1.js: {} js/file2.js: {} libraries: - 'customtheme/scripts'Su función de prueba no está en el alcance global.
Si desea que se pueda llamar a su función de prueba desde cualquier lugar, no la coloque en $(document).ready ni en IIFE.
es decir. en el primer archivo, solo tienes ..
function test(){ console.log('hello); }Es posible que también desee asignar un espacio de nombres a sus funciones, pero supongo que esa es una pregunta separada.
Además, para Drupal, es posible que desee utilizar drupal.behaviors en lugar de $(document).ready (para el segundo archivo)