javascript - 如何防止调用 jQuery 重复函数
问题描述
我有一个on('click')
这样的 jQuery 函数:
function enabled_click() {
$('.btn_enabled').on('click', function() {
alert('CLICKED');
});
}
然后我有另一个像这样的帖子功能
$(document).on('click', '.btn_add_link', function(e) {
var url = 'www.xxx.my-function';
post_data(url, function(data) {
if (data.status == 'success') {
$('#my_wrapper').append(data.response);
enabled_click();
} else {
alert('error');
}
});
return false;
});
post 函数将附加另一个.btn_enabled
按钮。如果我没有enabled_click()
在成功帖子上调用该函数,那么新添加的.btn_enabled
将无法触发onclick函数。
但是,如果我enabled_click()
像上面那样调用该函数,那么已经存在.btn_enable
的函数将调用两次 onclick 函数并发出两次警报CLICKED
。有没有办法让它只发出一次警报?
解决方案
你可以这样写
document.on('click', '.btn_enabled', function() {
alert('CLICKED');
})`
将事件委托给dom
,它使一切变得和谐。
推荐阅读
- html - 以角度读取第三个数据服务数据时发现状态为 302
- pandas - Pandas:使用来自其他数据框的数据
- python-3.x - 在创建纯粹用于在 python 中引用的数据集时,最常用的 python 类型是什么?
- reactjs - Axios 400 在 React js 中使用 post 方法的错误请求
- django - Django:关系“”的“user_id”列中的IntegrityError空值违反了非空约束
- python - 使用nltk下载获取语料库后,还是无法导入语料库
- python - For Loop 没有遍历所有数据
- hostapd - hostapd有线驱动检测用户异常断线
- java - 我在数组列表中输入了多个对象,但它只打印一个 JAVA
- android - 保存时如何使图像输出具有自定义大小的图像大小