点击事件没有被触发

Click event doesn't get triggered

我希望用户在点击时 select 整个输入框。

在我的例子中,输入框是:

      <label for="bla">My checkbox</label>
      <input type="input" id="bla" name="check" value="checked" />

为此,我编写了以下 JS:

function SelectAll(bar){   
    bar.focus();
    bar.select();
    console.log(bar);
}    
window.onload=function()
{
   var bla=document.getElementById("bla");
   bla.addEventListener('click',SelectAll(bla),false);       
};

但我在控制台中得到的只是 <input type="input" value="checked" name="check" id="bla"> 一次,怎么点都进不去

addEventListener 回调引用不应有参数。

.addEventListener('click', SelectAll)

加上(bla),实际上是SelectAll(bla)(element),不是你想要的

试试这个:

$( "#bla" ).click(function() {
     bla.addEventListener('click',SelectAll(bla),false);    
    });
function SelectAll(element){   
    element.focus();
    element.select();
    console.log(element);
} 

总结我的研究,我得出以下结论:

addEventListener 回调引用不应有参数,因为它会将事件传递给函数。

因此,实现 listener 的正确方法是 .addEventListener('click', SelectAll, false)

由于 event 已通过,但您想使用实际的 element,您将需要使用 bar.target 来访问它。