我有一个事件监听器,它被分配给div
使用click
监听器。
问题是它不会删除它只是不断添加的侦听器。
这是它发生的脚本:
var resourceCheckout = function (quantity,btn){
//quantity = integer
// btn = document.getElementByID('the_div');
var calculate = function (e) {
var allowed = false;
for(var i in test){
var total = quantity * test[i].q;
if(total > 200){ //if total > 200 remove eventListener
allowed = false; break;
} else {
allowed = true;
}
};
if(allowed){
btn.addEventListener('click',assign,false);
} else {
btn.removeEventListener('click', assign ,false);
}
};
var assign = function (e) {
do_it(quantity); //this gets called more than once when it should be
// a maximum of one
};
calculate();
};
我决定制作一个有效的jsfiddle来向您展示它,只需移动滑块然后点击按钮,它就会调用分配给监听器的函数并计算它被调用的次数。
我希望有人能解释我的错误,因为随着我的脚本变得更加复杂,它变得难以理解!