在Chrome和IE中编辑jquery更改事件期间元素的显示
Edit the display of an element during a jquery change event in Chrome and IE?
我有问题得到表单元素的样式在一个变化事件中正确。事件做了很多处理,需要几秒钟的时间来处理,所以我想在事件加载时禁用输入。
此刻我正在做:
$( '#checkbox' ).on('change', function() {
$('#textField').prop('disabled', true);
//process some stuff
$('#textField').prop('disabled', false);
});
这在firefox中工作得很好,但在Chrome或IE中似乎不起作用。在chrome和ie中,实际禁用属性被正确更新,但文本字段的显示不会更新,直到整个更改功能完成。
是否有办法强迫chrome和ie在更改功能的中间更新禁用输入的样式?
我不知道这是否真的证明了你正在尝试做的事情在IE上有效,但这对我来说在IE上有效。
你能不能在setTimeout中调用你的长时间运行的函数,并调用一个回调函数来重新启用你的文本框?
$('#checkbox').on('change', function() {
$('#textField').prop('disabled', true);
setTimeout(function() {
// long processing here.
// re-enable textbox here.
$('#textField').prop('disabled', false);
// probably use something like 50ms so your function has a slight
// delay for Chrome to be able to update the UI, but not too long
// to stall your function.
}, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<input type="checkbox" id="checkbox" />Check me.
</div>
<div>
<input type="text" id="textField" value="text here" />
</div>
我还发现了这篇关于如何避免阻塞UI线程时运行CPU密集型javascript。https://benjaminhorn.io/code/cpu-intensive-javascript-computations-without-blocking-the-single-thread/
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 将事件聚焦/模糊在可编辑内容的元素上
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 在IE8中不起作用的元素上触发单击事件
- 正在ng重复元素上添加事件
- 单击p元素时的javascript触发事件
- 存在每个时间元素的javascript事件
- Firefox:点击并更改未附加到文档树中的复选框元素上的事件
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 将jQuery事件应用于所有类元素
- 在IE8上使用jQuery克隆HTML5元素和事件
- 单击其他元素时,我如何使用 jQuery 忽略更改事件
- 访问代码生成的输入元素上的keyup事件
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 当元素到达屏幕上的某个位置时触发事件
- Mootools:如何在点击时保持元素高亮显示并停止所有事件
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- JQuery:使用clone()生成的元素不采用原始的事件属性
- 从其他元素上的单击事件访问image src属性
- 触发“三个”的点击事件.元素