Ich baue ein Dashboard mit mehreren EventListenern und AJAX, die Daten hin und her zu einem Python-Backend überträgt. Es funktioniert gut beim ersten Mal. Das zweite Mal, wenn ich auf die Funktion eventlistener klicke, bekomme ich zwei Antworten ... das dritte Mal 3 ... Ich kann es zurücksetzen, indem ich die Seite neu lade. Ich gehe also davon aus, dass sich der Eventlistener bei jedem AJAX-Event irgendwie neu registriert. Ich habe einige Suchen durchgeführt und kann kein ähnliches Problem finden. Hier ist der JavaScript-Code (einschließlich der Google Map API, die ich zurück an den Server übergebe).javascript eventlistener autoincrements
<!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">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<link href="../static/css/bootstrap.css" rel="stylesheet">
<link href="../static/css/drunken-parrot.css" rel="stylesheet" type="text/css">
<link href="../static/css/jquery.ui.core.min.css" rel="stylesheet" type="text/css">
</head>
<div id="leftCol" class="bodyx">
<form role="form">
<placebutton class="btn btn-lg btn-primary btn-block" type="button" id="placebutton">Save</placebutton>
</form>
</div>
<script type="text/javascript">
function sendplace() {
$('placebutton').click(function() {
pete = ({"firstName":"John"});
console.log("Test");
$.ajax({
url: '/new_place2',
data: (pete),
contentType: 'application/json;charset=UTF-8',
type: 'POST',
success: function(response) {
console.log(response);
},
});
});
};
var placebutton = document.querySelector("placebutton");
placebutton.addEventListener("click", sendplace, false);
console.log("addEvent");
</script>
</body>
</html>
Ich habe die Datei schnitzte denken könnte es einige Störungen sein - ich kann nichts finden - die gesamte Datei hier. Es hat immer noch die zwei Probleme - 1 - erster Klick macht nichts, und 2 - es sendet jedes Mal eine weitere Schleife. Hoffentlich ist das einfacher zu sehen ... Danke nochmal.
Java hat nichts mit JavaScript zu tun. – epascarello
Wenn Sie also auf die Schaltfläche klicken, fügen Sie ein Klickereignis zu einer anderen Schaltfläche hinzu. Wenn Sie mehrmals auf die Schaltfläche klicken, fügen Sie dieser Schaltfläche mehrere Klickereignisse hinzu. – epascarello
Wie verhindere ich das? Muss eine sehr häufige Sache sein? –