需要.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(); }); );
这样,您将拥有所有按钮的单个处理程序。 这没有经过测试但应该有效。