textArea onFocus 时未触发 Button ClickEvent

Button ClickEvent not triggered when textArea onFocus

我需要在关注文本区域输入时触发按钮ClickEvent。 PS : 我的 textArea 带有一些样式,当它聚焦时它会最大化

示例如下: https://stackblitz.com/edit/angular-ivy-zy9sqj?file=src/app/app.component.html

一旦您点击 button,您的 textarea 就会失去焦点,并且 returns 回到初始状态 height,这就是错过点击的原因。您一定不能让 textarea 在失去焦点后立即返回到初始状态 height,或者延迟它,以便先点击按钮。

一种方法是使用 JavaScript mouseover 事件将文本区域高度设置为其悬停按钮时的最大高度。

然后,单击按钮后,将其更改回初始高度。

查看以下解决方法是否适合您!

HTML:

<textarea id="text">test</textarea> <br/>
<button id="button">Change</button>

CSS:

textarea{
  height: 100px; /* initial height */
}    
textarea:focus {
  height: 200px; /* maximized height */
}

JavaScript:

document.querySelector('#button')
        .addEventListener('click', function () {
            document.querySelector('#text').value += 'changed';
            document.querySelector('#text').style.height = '100px';
});

document.querySelector('#button')
        .addEventListener('mouseover', function () {
            document.querySelector('#text').style.height = '200px';
});

jsFiddle: https://jsfiddle.net/ew86fb5p/

希望对您有所帮助!