Às vezes você pode usar e.stoppropagation (); E.PreventDefault (); Para impedir que os eventos borbulhassem e a execução de eventos padrão. Mas a adição de eventos não pode ser evitada.
Em que circunstâncias devemos impedir a adição de eventos?
por exemplo:
Clique em "checkout". Quando você opera isso, o check -out em si tem seus próprios eventos, mas você deve determinar se deve fazer login antes de verificar.
Podemos escrever isso:
Código JS
A cópia do código é a seguinte:
if (islogin) {// julga se deve fazer login
console.log ("sem login")
}outro{
// Código relacionado à compra
}
Se você clicar em "minha página inicial", você também terá um julgamento de login
Código de julgamento de login
if (islogin) {// julga se deve fazer login
console.log ("sem login")
}outro{
// centro pessoal
}
Se houver mais julgamentos de login. Haverá mais códigos como os acima? Mais tarde, descobri que o método StopImediatePropagation () impede que o evento seja anexado. A pergunta acima não é um problema.
IMPORTANTE: Verifique se o login determina que o evento seja o primeiro evento vinculado.
Código de demonstração
A cópia do código é a seguinte:
<! Doctype html>
<html>
<head lang = "en">
<meta charset = "utf-8">
<title> demonstração </title>
<script src = "http://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"> </script>
</head>
<Body>
<a href = "#"> checkout </a>
<ul>
<li> Adicione aos favoritos </li>
<li> Outros pagam </li>
<li> Adicione para comprar um carro </li>
<li> Minha página inicial </li>
</ul>
<Cript>
// se liga primeiro
$ (". Islogin"). on ("clique", função (e) {
if (true) {// Julgamento de login
alerta ("sem login");
E.StopImediatePropagation ();
}
retornar falso;
});
$ (".
alerta ("Conteúdo relacionado à compra!");
});
$ (". A1"). on ("clique", function () {
alerta ("A1");
});
$ (". A2"). on ("clique", function () {
alerta ("A2");
});
$ (". A3"). on ("clique", function () {
alerta ("adicionado ao carrinho");
});
$ (". A4"). on ("clique", function () {
alerta ("existe um julgamento de login");
});
</script>
</body>
</html>
De fato, o jQuery nos fornece um método para visualizar os eventos $ ._ Dados ($ ('. Islogin'). Get (0)), aberto FireBug e insira -o no console.
Código JS
$ ._ dados ($ ('. islogin'). Get (0))
Você verá o seguinte:
Código JS
Objeto {events = {...}, handle = function ()}
Clique para ver a matriz de eventos para facilitar a visualização de que tipo de eventos estão vinculados ao elemento.