我正在用多個eventlisteners和AJAX構建一個儀表板,它將數據來回傳輸到Python後端。它第一次正常工作。第二次單擊eventlistener函數,我得到兩個響應...第三次3 ...我可以通過重新加載頁面來重置它。所以我假設每次AJAX都會再次返回eventlistener寄存器。我做了一堆搜索,找不到類似的問題。這裏是javascript代碼(包括我傳回服務器的google map 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>
我已經削減了文件,認爲可能會有一些干擾 - 我找不到任何東西 - 整個文件都在這裏。它仍然有兩個問題 - 1 - 第一次點擊不做任何事情,2 - 每次發送一個循環。希望這更容易看...再次感謝。
的Java無關的JavaScript。 – epascarello
所以當你點擊按鈕時,你正在添加一個點擊事件到另一個按鈕。如果您多次點擊該按鈕,則會向該按鈕添加多個點擊事件。 – epascarello
如何防止發生這種情況?必須是一件很平常的事情? –