Llamar a una función personalizada antes o después de una función estandar de JS o capturar un evento.

Publicado más de 1 año hace por Flexygo Team

Publicar un tema
Sin responder
Flexygo Team
Flexygo Team

Hola buenos días,

Estoy añadiendo Javascript a unos filtros de objeto para disparar la funcionalidad del filtro al realizar lecturas con un lector de código de barras. En algunos modelos el propio lector simula el teclado y te mete un intro por lo que todo ok.

Otros no se pueden configurar así por lo que toca meter JS para imitar la funcionalidad. El problema ahora lo tengo con el funcionamiento del filtro, que tampoco se muy bien como va.

Por mi experiencia como usuario me parece que el sistema guarda en cache el ultimo filtro seleccionado o algo similar, la cosa esta en que si hay filtro al cargar el modulo el jQuery puede encontrar el/los campos y aplicarles funcionalidades, por lo que si cambio de filtro o lo oculto, los campos se borran y se generan otros nuevos.

Así que la duda que me surge ahora es puedo capturar de alguna manera el evento de mostrar/seleccionar filtro para poder volver a pasarles el JS, o sino si existe alguna forma de bloquear un filtro para que este siempre visible en determinados objetos.

Un saludo.

0 Votos


1 Comentarios

Flexygo Team

Flexygo Team publicado más de 1 año hace

Hola Arturo,


Para este caso puedes usar la suplantación de funciones estandar. Tendrías que ejecutar un código JS en tu proyecto de este estilo:

flexygo.ui.wc.FlxFilterElement.prototype.standarRenderFilter = flexygo.ui.wc.FlxFilterElement.prototype.renderFilter

flexygo.ui.wc.FlxFilterElement.prototype.renderFilter = function (active,filterValues) {this.standarRenderFilter(active,filterValues);alert(''); }

En la primera linea del código, guardamos la función estandar renderFilter del componente flx-filter en una variable del componente.
En la segunda linea, reemplazamos la función estandar por una nueva en la que primero llamamos a la copia del estandar que hemos realizado en la linea anterior, y despúes ejecutamos el código que queramos. De esta forma, siempre que se pinte un filtro, pasará primero por la función estandar y despues por la tuya.


Un saludo,


Rubén

0 Votos

Iniciar sesión o Registrarse para publicar un comentario