我有一个事件:改变事件的proccess之前jQuery的检查复选框做
$(document).on('change', '.many-checkbox', function() {
doSomething()
});
doSomething()
是有点重,所以与many-checkbox
类复选框将有一个延迟他们实际上正在检查/取消选中之前。
我想删除这些延迟。
那么,我们如何在doSomething()
完成之前检查/取消选中它?
谢谢。
我有一个事件:改变事件的proccess之前jQuery的检查复选框做
$(document).on('change', '.many-checkbox', function() {
doSomething()
});
doSomething()
是有点重,所以与many-checkbox
类复选框将有一个延迟他们实际上正在检查/取消选中之前。
我想删除这些延迟。
那么,我们如何在doSomething()
完成之前检查/取消选中它?
谢谢。
您可以使用setTimout
函数替换函数doSomething()
函数。例如:
$(document).on('change', '.many-checkbox', function() {
setTimeout(function(){
// do something
}, 100);
});
结果JavaScript执行将暂停以使渲染线程赶上。
我怀疑这里有各种各样的错误,但是你可以先听听整个机构内的任何变化,然后过滤到.many-checkbox类。
直接聆听更改复选框:
$('.many-checkbox').on('change', function() {
doSomething();
});
如果你告诉我们什么DoSomething的是做,我们也许可以让它异步的。
对不起,它的方式很难做到异步。正如你所说,它有很多错误,我的错误代码〜但非常感谢你的答复,非常感谢。 –
你可以在StackSnippet/JSFiddle中重现这个吗?看起来问题可能在其他地方。或在'doSomething'中。 – Tushar
顺便说一句,'$(this).prop('checked',$(this).prop('checked'));'没有什么,但增加了延迟。 – Tushar
我确定问题出在'doSomething',这就是为什么我想绕过它。因此,即使在doSomething完成之前,也可以使复选框被手动选中/取消选中。 –