我正在尝试清理元素的网址,并且每件事情都有效,但onclick事件直接在页面加载时触发,但在我点击时却没有。我该如何解决这个问题。
HTML: 今天通话清单
JS:
var buttons = document.querySelectorAll('.button');
var reset = document.querySelector('.reset');
function forEach(array, action) {
for (var i = 0; i < array.length; i++) {
action(array[i])
};
}
function clear_url_parameters(element) {
if (!element)
return false;
var element_url = element.getAttribute('href');
var split_url = element_url.split("?");
var queries = split_url[1].split("&");
var new_queries = [];
for (var i = 0; i < queries.length; i++) {
query = queries[i].split("=");
new_queries.push(query[0] + "=");
}
cleared_url = split_url[0] + new_queries.join('');
element.setAttribute('href', cleared_url);
}
reset.addEventListener('click', forEach(buttons, clear_url_parameters));
由于
答案 0 :(得分:1)
您正在将执行函数forEach
的结果传递给您的事件侦听器。
试试这个:
reset.addEventListener('click', function () { forEach(buttons, clear_url_parameters); } );
答案 1 :(得分:0)
更改
reset.addEventListener('click', forEach(buttons, clear_url_parameters));
到
reset.addEventListener('click', function(){
forEach(buttons, clear_url_parameters)
});
因为已传递给addEventListener
的参数已被调用。