A veces puedes usar e.stoppropagation (); E.PreventDefault (); Para evitar que los eventos burbujeen y la ejecución de eventos predeterminados. Pero la adición de eventos no se puede prevenir.
¿En qué circunstancias debemos evitar la adición de eventos?
Por ejemplo:
Haga clic en "Vuelva". Cuando opera esto, el pago en sí tiene sus propios eventos, pero debe determinar si iniciar sesión antes de visitar.
Podríamos escribir esto:
Código JS
La copia del código es la siguiente:
if (islogin) {// juzga si inicia sesión
console.log ("sin inicio de sesión")
}demás{
// Código relacionado con el pago
}
Si hace clic en "mi página de inicio", también tendrá un juicio de inicio de sesión
Código de juicio de inicio de sesión
if (islogin) {// juzga si inicia sesión
console.log ("sin inicio de sesión")
}demás{
// Centro personal
}
Si hay más juicios de inicio de sesión. ¿Habrá más códigos como los anteriores? Más tarde descubrí que el método StopimMediatEpropagation () evita la agregación del evento. La pregunta anterior no es un problema.
IMPORTANTE: Asegúrese de que el inicio de sesión determine que el evento es el primer evento límite.
Código de demostración
La copia del código es la siguiente:
<! Doctype html>
<html>
<head lang = "en">
<meta charset = "utf-8">
<title> demo </title>
<script src = "http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"> </script>
</ablo>
<Body>
<a href = "#"> checkout </a>
<ul>
<li> Agregar a los favoritos </li>
<li> Otros pagan </li>
<li> Agregar para comprar un coche </li>
<li> Mi página de inicio </li>
</ul>
<script>
// se une primero
$ (". Islogin"). On ("Haga clic", función (e) {
if (true) {// Iniciar juicio
alerta ("sin inicio de sesión");
e.stopimmediatepropagation ();
}
devolver falso;
});
$ (". bill"). on ("hacer clic", function () {
alerta ("¡Contenido relacionado con el pago!");
});
$ (". A1"). on ("hacer clic", function () {
alerta ("A1");
});
$ (". A2"). on ("hacer clic", function () {
alerta ("A2");
});
$ (". A3"). on ("Click", function () {
alerta ("agregado al carrito");
});
$ (". A4"). on ("Click", function () {
alerta ("Hay un juicio de inicio de sesión");
});
</script>
</body>
</html>
De hecho, jQuery nos proporciona un método para ver los eventos $ ._ datos ($ ('. Islogin'). Get (0)), abrir Firebug e ingresarlo en la consola.
Código JS
$ ._ datos ($ ('. Islogin'). Get (0))
Verá lo siguiente:
Código JS
Objeto {eventos = {...}, manejo = function ()}
Haga clic para ver la matriz de eventos para facilitar la visualización de qué tipo de eventos están vinculados al elemento.