Javascript 删除DOM元素将取消其他事件侦听器

Javascript 删除DOM元素将取消其他事件侦听器,javascript,events,dom,Javascript,Events,Dom,问题: 我有两个事件侦听器(模糊,单击)。第一个事件侦听器(blur)还从DOM中删除一个元素(#容器)。当它从DOM中删除时,它会取消第二个事件侦听器(单击),从而阻止单击事件 复制步骤: 1.在输入框内单击,使其处于焦点位置。 2.直接点击按钮。 3.理想情况下,这会触发“模糊”事件,然后触发“单击”事件。 4.请注意,不会触发“单击”事件。我使用Firefox获得“模糊”,然后单击,“单击”,容器将随模糊一起删除。您使用的浏览器是什么?Chrome 56.0.2924.87。这个问题也可以

问题: 我有两个事件侦听器(模糊,单击)。第一个事件侦听器(blur)还从DOM中删除一个元素(#容器)。当它从DOM中删除时,它会取消第二个事件侦听器(单击),从而阻止单击事件

复制步骤: 1.在输入框内单击,使其处于焦点位置。 2.直接点击按钮。 3.理想情况下,这会触发“模糊”事件,然后触发“单击”事件。
4.请注意,不会触发“单击”事件。

我使用Firefox获得“模糊”,然后单击,“单击”,容器将随模糊一起删除。您使用的浏览器是什么?Chrome 56.0.2924.87。这个问题也可以在Firefox上重现。第一次就不行了。它第二次起作用。@Jaspero-你试过我的演示吗?这是因为,元素被上移,所以事件不会在该元素上调用..人造丝,您的链接将打开我的版本。我确实注意到这个问题可能与移除后元素向上移动有关。如果您将#container div移动到#myButton下方,它就会工作。但是,变化的元素会让听众放松,这似乎很奇怪。
    document.getElementById('myInput').addEventListener('blur', function(){
      if(document.getElementById('container')){
        document.getElementById('container').remove();
      }
      console.log('blur');  
    });

    document.getElementById('myButton').addEventListener('click', function(evt){
      evt.preventDefault();
      console.log('click');
    });