TransWikia.com

Evento Js se ejecuta n veces

Stack Overflow en español Asked by Missael Armenta on November 24, 2021

Tengo una pequeña duda en JavaScript

Resulta que estoy realizando un evento con Jquery sobre los elementos de una clase, pero por alguna razón el evento se ejecuta N veces el numero de elementos de dicha clase ejemplo

$(".sltTypeTransaction").change(function (){
   console.log("Hola mundo");
})

En mi caso tengo 2 elementos HTML con la clase "sltTypeTransaction" y el evento se ejecuta 2 veces, todo funciona bien pero me pregunto si existe alguna forma de que solo se ejecute 1 vez ya que en realidad al interactuar con el control no se cambian los 2 elementos al mismo tiempo si no mas bien cambia un elemento a la vez

De ante mano muchas gracias;

One Answer

The change event is sent to an element when its value changes. This event is limited to elements, boxes and elements. For select boxes, checkboxes, and radio buttons, the event is fired immediately when the user makes a selection with the mouse, but for the other element types the event is deferred until the element loses focus.

Un evento change solamente se dispara cuando el elemento que lo tiene asignado cambia. Si se te está disparando más veces es porque tienes que tener otro evento asignado a la misma clase (quizá un click o un focusout o similares).

Ejemplo de función change() aplicada en varios elementos a través de su clase

$(".sltTypeTransaction").change(function (){
   let id = $(this).attr('id');
   
   console.log("Cambia " + id);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="text" class="sltTypeTransaction" id="elemento1">
<input type="text" class="sltTypeTransaction" id="elemento2">
<input type="text" class="sltTypeTransaction" id="elemento3">
<input type="text" class="sltTypeTransaction" id="elemento4">

EDIT

Añadí que lo que se muestre por consola sea el ID del elemento que está disparando el evento change, a fin de que se vea que el evento solamente está saltando 1 vez y que está afectando solamente al elemento que cambia y no al resto con los que comparte clase.

Referencia: change()

Answered by phpMyGuel on November 24, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP