Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
1
respuesta

Cual es la diferencia entre .onclick y .addEventListener

Tengo una duda con respecto a esos dos conceptos en lo que entiendo hasta cierto punto funcionan parecido pero no entendio cual es la diferencia ya usandolas o cual es la mejor situacion para poder usarlas muestro el siguiente ejemplo:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Por que mi boton fallo?</title>
</head>

<body>
    <h1>El boton que fallo</h1>
    <button id="boton">Haga clic</button>

    <script>

        let boton = document.querySelector('#boton');

        function botonHandler() {

            alert('Hicieron clic en el Botón');
        }

        boton.addEventListener('click', botonHandler);
        //Este metodo me ejecuta la funcion al momento de dar click en el boton

        boton.onclick = botonHandler;
        //Este metodo me ejecuta la funcion al momento de dar click en el boton

    </script>
</body>

</html>
1 respuesta
solución!

Estimado Axell Osiel García Rivas, una de las diferencias es que addEventListener no funciona en versiones anteriores a Internet Explorer antes de la version 9.

Otra gran diferencia es que si quisieras ejecutar varias funciones al mismo tiempo con addEventListener lo puedes hacer, sin embargo si lo haces con onclick solo se ejecutara el ultimo metodo asociado al evento onclick.

Te dejo estos dos ejemplos que te podran ilustrar la diferencia:

<!DOCTYPE html>
<html>

<body>
    <button id="btn">Click here</button>
    <h1 id="text1"></h1>
    <h1 id="text2"></h1>

    <script>
        let btn_element = document.getElementById("btn");

        btn_element.addEventListener("click", () => {
            document.getElementById("text1")
                .innerHTML = "Task 1 is performed";
        })

        btn_element.addEventListener("click", () => {
            document.getElementById("text2")
                .innerHTML = "Task 2 is performed";
        });
    </script>
</body>

</html>
<!DOCTYPE html>
<html>

<body>
    <button id="btn">Click here</button>
    <h1 id="text1"></h1>
    <h1 id="text2"></h1>

    <script>
        let btn_element = document.getElementById("btn");

        btn_element.onclick = () => {
            document.getElementById("text1")
                .innerHTML = "Task 1 is performed";
        };

        btn_element.onclick = () => {
            document.getElementById("text2")
                .innerHTML = "Task 2 is performed";
        };
    </script>
</body>

</html>

Espero haberte ayudado.