Pregunta:
Tengo un comportamiento que añade on
algunas casillas de verificación.
(function($) {
Drupal.behaviors.mymodule = {
attach: function (context, settings) {
$('.skip-line', context).on('change', function(){
// some code
if ( confirm(Drupal.t('Apply to all languages?')) ) {
// applying...
}
});
}
};
})(jQuery);
Funciona muy bien, pero las casillas de verificación están en la parte cargada con AJAX. Si recargo esa parte del formulario, al hacer clic en ellos, aparece la confirmación dos veces. Ahora, sé que puedo probar la función interna si es la primera vez consecutiva que se llama, pero preferiría asegurarme de que se agregue a mi elemento solo una vez y, por lo tanto, se llame solo una vez. ¿Cómo puedo hacer eso?
Respuesta:
La función once()
ayudará con eso, por ejemplo
(function($) {
Drupal.behaviors.mymodule = {
attach: function (context, settings) {
$('.skip-line', context).once('mymodule').on('change', function(){
// some code
if ( confirm(Drupal.t('Apply to all languages?')) ) {
// applying...
}
});
}
};
})(jQuery);