如果我在textarea
中,我可以执行以下操作:
if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
e.preventDefault() return
}
它在文本区域内进行检测,但我希望它能冒泡到某个父元素。 我怎么能那么做?
只要textarea是大子元素,并且不执行event.stopPropagation()
,您就可以将onKeyPress放在div父元素上
<div onKeyPress={e => {console.log("went here", e);}>
<textarea>sample text area</textarea>
</div>
默认情况下,除非您使用e.stopPropagation()
:
null
document.getElementsByTagName('textarea')[0].addEventListener('keyup', function(e) {
if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
e.preventDefault();
return;
}
});
document.getElementsByTagName('div')[0].addEventListener('keyup', function(e) {
console.log('Bubbled');
});
<div>
<textarea>
</textarea>
</div>