div上的Javascript单击事件监听器仅工作一次

时间:2018-09-04 13:20:46

标签: javascript focus contenteditable addeventlistener

我希望每次用户单击#box div时都将焦点放在可编辑的#innerbox内。

我正在使用以下代码,但只能运行一次:

document.getElementById('box').addEventListener('click', function(){
  setTimeout(function() {
    document.getElementById('innerbox').focus();
  }, 0);
});
#innerbox{
  border: 1px solid;
}

#box{
  border: 1px blue solid;
  padding:20px;
}
<div id="box">
  <div id="innerbox" contenteditable="true" style="min-height:26px;" onkeyup="myFunction()"></div>
</div>

#box上没有其他“点击”监听器

编辑: 我与上面的代码段的区别是#innerbox div被删除并在DOM中重新创建,并且是在第一次重新创建click eventlistener不再起作用后才出现的问题,这可能是问题吗?

编辑2: 我尝试使用

$('#box').on('click', '#innerbox', function(){
  $('#innerbox').focus();
});

用于动态创建的元素,但也不起作用。

0 个答案:

没有答案