javascript - 分页加载按钮的 onclick 未触发

标签 javascript

我的网站中有一个程序提要,每次用户滚动到页面底部时都会加载数据;平常的事情。

分页本身运行良好;但是,使用 JavaScript 单击按钮不起作用。完全没有。

这是按钮的 JavaScript 触发器,该触发器不起作用:

var modalTrigger = document.querySelectorAll(".ts-modal__trigger"), // the buttons
    modal;

document.onclick = function(e){ // document on click
    for(var i = 0; i < modalTrigger.length; i++){ // iterate through each button
        if(e.target == modalTrigger[i]){ // if target clicked was button
            e.stopPropagation(); // stop dom event from bubbling
            modal = document.getElementById(modalTrigger[i].getAttribute("data-activemodal"));

            document.body.style.overflow = "hidden"; // disable scroll on page
            modal.style.display = "block"; // display modal
        }
    }   
}

据我所知,这个应该可以工作(使用stopPropagation()),但可惜的是,它没有。

打算使用内联JS,但我觉得这是非常不必要的,只需几行单独的JavaScript,而不是无缘无故地添加额外的 HTML

因此,感谢所有帮助,

谢谢。 :)

fiddle : https://jsfiddle.net/xhp4cesr/

编辑:我注意到删除按钮内的span后,它会起作用,但一旦添加回来,它就不起作用了。

最佳答案

实现此目的的一种方法是删除 e.stopPropogation 并定位子级

var modalTrigger = document.querySelectorAll(".ts-modal__trigger"), // the buttons
  modal;

document.onclick = function(e) { // document on click
  for (var i = 0; i < modalTrigger.length; i++) { // iterate through each button
    if (e.target == modalTrigger[i] || modalTrigger[i].children) { /* <- added children as target */
      modal = modalTrigger[i].getAttribute("data-activemodal");
      console.log(modal);
    }
  }
}
a {
  background: red;
  padding: 40px;
}

span {
  color: yellow;
}
<a class="ts-modal__trigger" data-activemodal="ts-main-feed_status-comments-overlay">
  <span>11</span>
</a>

关于javascript - 分页加载按钮的 onclick 未触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42871401/

相关文章:

javascript - 当遇到返回之前执行到达 block 末尾时,在 Parse Promise then block 中会发生什么?

javascript - 需要帮助将旧的工作 jquery 与新的 webform 合并

javascript - 如何在可视化 Web 开发人员中将 javascript 组合到 html/ASP.Net 中?

javascript - 如何使用 JavaScript Fetch 发布到 Rails 应用

javascript - 在客户端加载 native 插件

javascript - java HTTP 503 错误(不是由于服务器过载)

PHP/jQuery/Javascript - 变量中仅允许数字和某些字符

javascript - 当控制台记录某些内容时是否会触发事件?

javascript - 不同鼠标悬停时发出多种声音

javascript - 使用循环遍历数组将嵌套在内部的键值推送到另一个数组中。 Javascript