Extiende la escucha de eventos DOM para incluir atributos, propiedades y estilos
English - Español - Polski - Pусский - 中文
- ¿Qué es?
- Instalación
- Como usarlo:
- Ejemplos
- Depuración
- Como contribuir
- Licencia
Esta biblioteca permite usar oyentes de eventos en forma de eventos estándar para monitorizar los cambios de cualquier cosa que suceda en el DOM, desde escuchar cambios de html a cuando un estilo se establece o incluso cuando un valor en una entrada cambia.
Esta biblioteca se puede instalar usando:
El script se puede cargar tanto en la cabecera como en el cuerpo. Toda la funcionalidad se carga automáticamente tan pronto como se carga el archivo.
- Nota: incluya este script antes que cualquier otro script para una implementación adecuada *
<script src="/(node_modules|bower_modules)/pikantny/pikantny.min.js"></script>
Comenzar a usarlo es tan simple como usar su método de escucha estándar
var node = document.querySelector('selector')
node.addEventListener('innerHTML', console.log);
$('selector').on('innerHTML', console.log);
Cuando se escuchan eventos de propiedad, hay dos tipos diferentes de oyentes de eventos, eventos de actualización previos a DOM y de actualización posterior a DOM. Simplemente agregando update
al final de cualquier oyente de evento, el evento se activará después de la actualización de DOM
node.addEventListener('innerHTMLupdate', console.log);
Se pueden agregar oyentes de eventos de atributos para detectar cualquier cambio en cualquier atributo
node.addEventListener('id', console.log);
node.setAttribute('id','your-id');
// or
node.id = 'your-id';
Las propiedades de un elemento también permiten escuchar cualquier cambio.
node.addEventListener('textContent', console.log);
node.textContent = 'new-text';
Cualquier método de elementos permite escuchar su ejecución.
node.addEventListener('appendChild', console.log);
node.appendChild(input);
Los estilos asociados con el objeto de estilos o el atributo de estilos también permiten escuchar cualquier cambio, cada oyente respectivo se activará si se establecen múltiples en el atributo de estilo
node.addEventListener('color', console.log);
node.style.color = '#000';
// or
node.setAttribute('style','color:#000;');
Los cambios en el valor de entrada también permiten escuchar cualquier cambio y son compatibles con IME
input.addEventListener('value', console.log);
El objeto de evento que se pasa a cada uno de estos eventos activados permite una funcionalidad similar a la de un detector de eventos DOM estándar
Cuando se llama desde un evento de actualización previo al DOM, este método se puede usar para evitar que el DOM se actualice
// innerHTML, textContent, appendChild, etc
node.addEventListener('html', function(e){ e.preventDefault(); });
// input
input.addEventListener('value', function(e){ e.preventDefault(); });
Cuando se llama desde un evento de actualización previo a DOM, este método se puede usar para detener la activación de los eventos de actualización posterior a DOM
node.addEventListener('innerHTML', function(e){ e.stop(); });
// this will not fire
node.addEventListener('innerHTMLupdate', console.log);
Cuando se llama, no hay mas oyentes de eventos en la fase bubbling después de que el actual se dispare
Cuando se llama no hay oyentes de eventos después del actual se disparará
Esta propiedad muestra el valor de retorno de una función ejecutada cuando se analiza en un evento de actualización posterior a DOM
Muestra el valor que se está configurando.
Muestra el valor anterior del elemento que se está configurando.
Todas las demás propiedades de eventos siguen la misma guía que un objeto de evento estándar
No permitas que un elemento tenga cambios en html
var node = document.querySelector('selector');
node.addEventListener('html',function(e){e.preventDefault();});
Valide las entradas para ver si se permite un valor dado.
Puede usar return false;
o event.preventDefault();
para detener la actualización de la entrada
var input = document.querySelector('selector');
input.addEventListener('value',function(e){ return /^[0-9A-Za-z]+$/.test(e.value); });
Esta biblioteca es compatible con el panel de eventos de la consola dev, todos los eventos agregados se mostrarán en este panel.
Si quieres contribuir aquí están los pasos.
- Clon Repo: Pikantny Github Repo
- Instale las dependencias de desarrollo necesarias
- construir el proyecto
npm run build
- Pon a prueba tus cambios, no rompas nada.
npm test
- Haga una solicitud de sus cambios :)
Puedes ver la licencia aquí: License