我正在寻找一种在调整textarea大小时运行一些JS的方法。
经过一个小时的搜索和摆弄,我发现有些东西可以工作,但是还不够好。
titleTextArea.mouseup(function() {
popup.update(); titleTextArea.focus();
});
上面的代码的问题在于,当在文本区域中单击时,它也会运行。我正在运行的代码会导致文本区域被重新渲染,当有人在其中工作时,这应该不会发生,因为它会使焦点混乱。
我已经尝试按照此SO post使用可调整大小的jQuery 。由于某些原因,不会触发调整大小事件。确实,我不想为此而引入jQuery UI。
有没有一种方法可以在文本框调整大小上运行代码(仅在调整大小完成后才能运行),而该代码也不会被一系列不同的操作触发?
(PS:为什么没有这个香草事件?!)
一个简单的解决方案可能只是添加宽度/高度检查,但不是一个完美的解决方案:
var ta = document.getElementById("text-area");
var width = ta.clientWidth, height = ta.clientHeight
document.getElementById("text-area").addEventListener("mouseup", function(){
if(ta.clientWidth != width || ta.clientHeight != height){
//do Something
console.log('resized');
}
width = ta.clientWidth;
height = ta.clientHeight;
});
<textarea id="text-area" rows="4" cols="50"></textarea>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句