私は、複数のイベントリスナーとAJAXを使ってダッシュボードを構築しています.AJAXは、データを前後にPythonバックエンドに転送します。初めて正常に動作します。 2回目はeventlistener関数をクリックすると、2回の応答が得られます... 3回目です...ページをリロードすることでリセットできます。だから私は、AJAXがイベントリスナーのレジスタを再び戻すたびに何らかの形でそれを仮定します。私は検索の束をやったと同様の問題を見つけることができません。ここではJavaScriptコード(私はサーバーに戻って渡しているGoogleマップAPIを含む)です。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>
私はいくつかの干渉があるかもしれません考えてファイルを絞り込まてきた - 私は何かを見つけることができません - ファイル全体がここにあります。それはまだ2つの問題があります - 1 - 最初のクリックは何もしません、2 - それは毎回1つのループを送ります。うまくいけば、これは見やすいです...もう一度感謝します。
のJavaのJavaScriptとは何の関係もありません。 – epascarello
ボタンをクリックすると、別のボタンにクリックイベントが追加されます。ボタンを複数回クリックすると、そのボタンに複数のクリックイベントが追加されます。 – epascarello
これを防ぐにはどうすればよいですか?非常に一般的なものでなければならない? –