我正在用多个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
如何防止发生这种情况?必须是一件很平常的事情? –