需要.llick的eventlistener,以便动态刷新的按钮可以工作,但是操作会成倍增加

如果我对数据库进行更改,我有一个页面,其中一个div:s内容(不是整个页面)刷新/重新加载/更新。

此内容包含一个包含一些文本和按钮的行的表。 由于我需要按钮仍然可以使用.click,我添加了一个eventListeners。 问题是,我第一次按下这个div中的一个按钮时应该如此,但是每次按下其中一个按钮时,动作就会增加。

这就像有太多的eventListeners。 但我需要创建它们,以便每个按钮都可以点击。 你怎么解决这个问题?

我的大脑告诉我,我需要删除其他的eventListeners(因为每次点击都会创建一个,对吧?)然后触发一个新的。 但我不知道该怎么做。

我的代码看起来像下面的代码。 所以我第一次按’编辑’我得到一个’你好’警报,第二次我得到两个’你好’警报,第三次我得到三个’你好’警报……等等

HTML

 
<?php // Loop Through Database { echo '

Some Info

'; echo ''; } ?>

JS

 $(document).ready(function(){ var setupEventListener { $('.edit-button').click(function(e){ e.preventDefault(); someFunction(); }); } function someFunction(){ // update database with ajax and on success: alert('hello'); $('.div-to-reload').load(document.URL + ' .div-to-reload', setupEventListeners); } setupEventListener(); }); 

你可以尝试更换你的

 var setupEventListener { $('.edit-button').click(function(){ e.preventDefault(); someFunction(); }); } 

有这样的事情

 $(".div-to-reload").on('click', '.edit-button', function(e){ e.preventDefault(); someFunction(); }); ); 

这样,您将拥有所有按钮的单个处理程序。 这没有经过测试但应该有效。