【发布时间】:2019-11-22 04:40:27
【问题描述】:
我正在寻找一种在调整文本区域大小时运行一些 JS 的方法。
经过一个小时的搜索和摆弄,我找到了一些可行的方法,但还不够好。
titleTextArea.mouseup(function() {
popup.update(); titleTextArea.focus();
});
上面代码的问题是在textarea点击的时候也会运行。我正在运行的代码会导致 textarea 重新渲染,当有人在其中工作时不应该发生这种情况,因为它会混淆焦点。
我已经尝试使用 jQuery 来调整大小,根据 SO post。由于某种原因,调整大小事件不会触发。而且我真的不希望为此引入 jQuery UI。
有没有办法在文本框调整大小时运行代码(仅在调整大小完成后才可以),而这些代码也不会被一堆不同的操作触发?
(PS:为什么没有香草事件?!)
【问题讨论】:
-
你在那个 SO 帖子上看到这个答案了吗? stackoverflow.com/a/7055239/1376624也用mouseup,不过可能会更流畅
-
不幸的是,仅整个窗口或 iframe 始终支持调整大小事件。很难学到这一点。
-
你看过 ResizeObserver API developer.mozilla.org/en-US/docs/Web/API/ResizeObserver 吗?然后你可以像这里一样实现一个 polyfill 来支持 IE、Edge 和 Safari - codepen.io/florinsimion/pen/GRRLZyJ
标签: javascript jquery html textarea dom-events