我正在创建自己的类似JSFiddle的webapp,并且想要实现元素大小的调整,但是保持文档高度不变,因此必须在每次调整大小时重新计算元素的尺寸。
我有这个脚本:
var a = setInterval(setHeight, 1);
var b = setInterval(formsWidth, 1);
iframe.onResizeStart = a;
html.onResizeStart = b;
iframe.onResizeStop = clearInterval(a);
html.onResizeStop = clearInterval(b);
iframe是呈现用户代码的元素,而HTML是我的三个文本区域之一。我希望此脚本在iframe调整大小时重新计算textareas的高度,并在改变其中之一的宽度时重新计算其宽度。
我设法完成了这项工作,但是我无法停止间隔,因此需要帮助。
上面的代码现在根本不起作用,可能是因为调用了onResizeStart变量。
如果有人可以帮助我,我将不胜感激。
我宁愿不使用jQuery。
最佳答案
这是行不通的,因为您几乎在调用setInterval()之后立即调用clearInterval(),因此间隔永远不会有执行的机会。完成大小调整后,您需要存储掉a和b,然后稍后再对它们调用clearInterval()。
编辑:更加仔细地看,只需将每个对clearInterval()的调用包装在一个函数中。这样,clearInterval不会立即执行,而是在触发onResizeStop事件时立即执行。
iframe.onResizeStop = function() { clearInterval(a); };
关于javascript - 如何清除这些间隔?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35562662/