在 DOM 事件上向函数发送参数
Sending arguments to a function on DOM event
我正在尝试向 javascript 事件上的函数调用发送参数。
在接收焦点的下拉菜单中,文本会根据传递给函数调用的参数在某处发生变化。
无法完成这项工作!任何帮助将不胜感激。
function changeText(x) {
if (x) {
document.querySelector('.focused').textContent = 'Focused';
} else {
document.querySelector('.focused').textContent = 'LOST';
}
}
document.querySelector('.selector').onfocus = changeText(true);
document.querySelector('.selector').onfocusout = changeText(false);
<select class='selector'>
<option value = 'one'>One</option>
<option value = 'two'>Two</option>
</select>
<br />
<br />
<br />
<div class = 'focused'>XXX</div>
变化:
我使用匿名函数来包装你的函数。
我使用 addEventListener('focusin'/'focusout') 因为 "onfocusout" 在失去焦点时没有触发。
function changeText(x) {
if (x) {
document.querySelector('.focused').textContent = 'Focused';
} else {
document.querySelector('.focused').textContent = 'LOST';
}
}
document.querySelector('.selector').addEventListener('focusin',function(){ changeText(true); });
document.querySelector('.selector').addEventListener('focusout',function(){ changeText(false); });
<select class='selector'>
<option value = 'one'>One</option>
<option value = 'two'>Two</option>
</select>
<br />
<br />
<br />
<div class = 'focused'>XXX</div>
我正在尝试向 javascript 事件上的函数调用发送参数。
在接收焦点的下拉菜单中,文本会根据传递给函数调用的参数在某处发生变化。
无法完成这项工作!任何帮助将不胜感激。
function changeText(x) {
if (x) {
document.querySelector('.focused').textContent = 'Focused';
} else {
document.querySelector('.focused').textContent = 'LOST';
}
}
document.querySelector('.selector').onfocus = changeText(true);
document.querySelector('.selector').onfocusout = changeText(false);
<select class='selector'>
<option value = 'one'>One</option>
<option value = 'two'>Two</option>
</select>
<br />
<br />
<br />
<div class = 'focused'>XXX</div>
变化: 我使用匿名函数来包装你的函数。 我使用 addEventListener('focusin'/'focusout') 因为 "onfocusout" 在失去焦点时没有触发。
function changeText(x) {
if (x) {
document.querySelector('.focused').textContent = 'Focused';
} else {
document.querySelector('.focused').textContent = 'LOST';
}
}
document.querySelector('.selector').addEventListener('focusin',function(){ changeText(true); });
document.querySelector('.selector').addEventListener('focusout',function(){ changeText(false); });
<select class='selector'>
<option value = 'one'>One</option>
<option value = 'two'>Two</option>
</select>
<br />
<br />
<br />
<div class = 'focused'>XXX</div>