点击事件没有被触发
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
来访问它。
我希望用户在点击时 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
来访问它。