jquery preveldefault () non funziona al primo clic
-
10-12-2019 - |
Domanda
Ho il seguente codice
$("#logoutLink").click(function(event) {
event.preventDefault();
var dataString = "action=confirm";
$.ajax({
type: "POST",
url: "requests.php",
data: dataString,
success: function(msg) {
if (msg == "success") {
alert('logged out');
} else {
showNotification("error", "" + msg + "");
}
},
error: function() {
showNotification("error", "Could not log you out at this time, try again.");
}
});
return false;
});
.
e un link con id="logoutlink"
PreventDefault non funziona la prima volta perché il sistema di accesso non aggiorna il collegamento e aggiunge contenuto HTML con collegamenti, in cui è il link di disconnessione e quindi l'articolo non esiste in HTML, so che questo è ilProblema, ma la mia domanda è come farei sapere che il contenuto HTML è stato aggiunto con link ID LogoutLink senza pagina Aggiorna?
Soluzione
La domanda non è chiara, ma si aggiunge il collegamento dinamicamente, è necessario utilizzare .live('click', ...)
o il nuovo JQuery 1.7 .on()
.
Altri suggerimenti
La tua domanda è un po 'confusa, ma prova a utilizzare live()
per legare il gestore di eventi:
$("#logoutLink").live('click', function(event) {
// ...
.
Vedi http://api.jquery.com/live/ per ulteriori informazioni.
. È necessario aggiungere il gestore di clic $("#logoutLink").click(function(event) {}
solo dopo che il sistema di accesso aggiunge i collegamenti, quindi farei il seguente
function addHandlers(){
$("#logoutLink").click(function(event) {
event.preventDefault();
// anything else
}
}
$(document).ready(function(){
addHandlers();
});
.
Quindi chiamare anche addHandlers();
quando vengono aggiunti i collegamenti