JavaScript onclick 事件在没有任何点击的情况下触发

标签 javascript html dom-events

我正在尝试清理元素的 URL,一切正常,但 onclick 事件在页面加载时直接触发,但在我单击时则不触发。我该如何解决这个问题?

HTML:

<a class="button" href="http://192.168.1.99:8888/propertyturkey/admin/clients/index/today_calls/?status=3&amp;sales=70&amp;tagged=1&amp;clientName=turkey&amp;nextCall=turkey&amp;clientEmail=sdfgsdfg">Today call list</a>
<input type="reset" class="reset" id="reset" value="Reset">

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));

Demo on jsfiddle

最佳答案

您正在将执行函数 forEach 的结果传递给您的事件监听器。

试试这个:

reset.addEventListener('click', function () { forEach(buttons, clear_url_parameters); } );

关于JavaScript onclick 事件在没有任何点击的情况下触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20680631/

相关文章:

javascript - 访问 swig 模板中带连字符的 json 变量

javascript - 如何将原型(prototype)附加到 JS 中的对象文字

javascript - 按下提交按钮后如何向 app.js 发送 POST 请求以显示 View 并渲染值?

html - 如何在 Bootstrap 中左右对齐导航栏的列表项

javascript - 禁用上下文菜单但不在文本框中

javascript - 如何在加载器加载时停用后台

javascript - AngularJS 中未定义 memberID

javascript - 如何在函数运行后等待一段时间

javascript - 防止在 AngularJS 中达到一定长度后从文本框中删除字符串

javascript - 使用 Scrolloverflow.js + Fullpage.js 包装的内容