JavaScript AddEventListener 异常

标签 javascript html css

目前,这段代码非常适合我:

function click(event){
    var header = document.getElementById('header');
    var text = document.createElement('textarea');
    text.multiline = true;
    text.cols = 30;
    text.rows = 6;
    text.style.cssText = "position: absolute; margin-left:" + event.clientX + "px; margin-top:" + (event.clientY - 50) + "px;";
    header.parentNode.insertBefore(text, header.nextSibling);
}
document.addEventListener("click", click);

但我想知道您是否可以在单击文本区域时阻止它激活。

最佳答案

Test the target-node using event.target.nodeName

function click(event) {
  if (event.target.nodeName.toUpperCase() !== 'TEXTAREA') {
    var header = document.getElementById('header');
    var text = document.createElement('textarea');
    text.multiline = true;
    text.cols = 30;
    text.rows = 6;
    text.style.cssText = "position: absolute; margin-left:" + event.clientX + "px; margin-top:" + (event.clientY - 50) + "px;";
    header.parentNode.insertBefore(text, header.nextSibling);
  }
}
document.addEventListener("click", click);
<header id='header'>Header</header>

关于JavaScript AddEventListener 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37806748/

相关文章:

javascript - 联系表单提交按钮在按下时不刷新

html - 如何将两个几乎相同的 FontAwesome 图标正确居中到 <button> 的中心?

javascript - 这里使用了哪个 jQuery 过渡插件?

javascript - 我如何判断哪个组件当前处于事件状态 Angular 5

html - CSS - 表格 - TH 悬停设置 TD 可见性

jQuery Flexslider 不是每次都加载

html - 需要在第一个位置下面的 div

javascript - 使用js的页面中的所有css类

javascript - 如何解析无效的 json 字符串(带有十六进制值)

javascript - Sails.js 水线破坏 "lower or equal"标准