Click事件未被触发

时间:2017-01-23 09:49:55

标签: javascript forms no-framework

我希望用户在点击它时选择整个输入框。

在我的情况下输入框是:

      <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">  曾经,无论我点击多少,我都无法再获得更多。

3 个答案:

答案 0 :(得分:1)

addEventListener回调引用应该没有参数。

.addEventListener('click', SelectAll)

通过添加(bla),它实际上被称为SelectAll(bla)(element),这不是您想要的。

答案 1 :(得分:0)

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

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

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

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

答案 2 :(得分:-2)

试试这个:

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