it-swarm-es.com

Mejor comprensión de los comportamientos Drupal)

Leí sobre Drupal comportamientos hoy, e intenté escribir el siguiente código.

(function ($) {

  Drupal.behaviors.mymodule = {
    attach: function (context, settings) {
      $('#mymodule_id', context).change(function () {
        alert('Handler for .change() called.');
      });
    }
  };

}(jQuery));
  • ¿Es Drupal.behaviors.mymodule El espacio de nombres?
  • ¿Cuáles son los parámetros de contexto y configuración pasados ​​al comportamiento Drupal?
  • ¿Es este el equivalente de document.ready()?
  • ¿Puedo adjuntar cualquier número de funciones?
  • ¿Puedo definir funciones de JavaScript que se llamarán en alguna parte?
53
Hacker

En resumen, la ventaja de Behaviors sobre document.ready() es que se vuelven a aplicar automáticamente a cualquier contenido cargado a través de AJAX. mymodule es su espacio de nombres, que debe ser único. context es la parte de la página a la que se aplica esto, por ejemplo, una parte de un formulario que se ha actualizado con AJAX. Puede adjuntar múltiples comportamientos, pero creo que necesita usar un nombre único (mymodule) para cada uno de ellos.

Eche un vistazo a los siguientes recursos para obtener más información:

57
Berdir

En palabras fáciles, Drupal.behaviors es una mejor manera de implementar jQuery.ready

Diferente a jQuery.ready que solo se ejecuta una vez cuando el DOM está listo, Drupal.behaviors se puede ejecutar varias veces durante la ejecución de la página.

Por ejemplo, en las vistas de desplazamiento infinito, se cargarán más elementos cuando el usuario haga clic en cargar más botón, por lo tanto, DOM cambiará después de la carga inicial.

¿Qué pasa si queremos agregar clases a los elementos recién agregados? Aquí Drupal Los comportamientos son útiles.

Los comportamientos se ejecutarán en cada solicitud, incluidas las solicitudes AJAX.

Drupal llamará a los comportamientos adjuntos cuando se carga el DOM y también cuando Ajax lo cambia, pasando dos argumentos

contexto y configuración

La primera vez que se llama a Drupal.attachBehaviors (), la variable contexto contiene el objeto de documento que representa el DOM, pero para el resto de las llamadas, el contexto contendrá la pieza afectada de HTML.

configuración contiene información transmitida a JavaScript a través de PHP, es similar a acceder a ella a través de Drupal.settings.

Además, los módulos también pueden llamar a Drupal.attachBehaviors ().

2
vivek agarwal