复选框.change()上的火灾事件但是**复选框出现后会被选中?

Ric*_*ard 3 javascript jquery

我正在使用jQuery捕获复选框上的单击事件并调用函数.

我的问题是这样的:我正在调用的函数执行起来相对较慢,因此用户在复选框看起来被检查之前看到了可见的延迟,这使得界面看起来缓慢且不优雅.

这个小提琴演示了这个问题:http://jsfiddle.net/ZkUgq/4/或这里的代码:

function slowFunction() { 
   var mystr;
    for (var i = 0; i < 5000000; i++) { 
        mystr += ' ';
    }
}
$('#mycheckbox').click(function() { 
   slowFunction();
});
Run Code Online (Sandbox Code Playgroud)

有没有办法可以改变事物,以便点击事件仍然会触发slowFunction,但是不会延迟复选框中勾号的出现?

理想情况下,我想要的是onChecked复选框的事件,但我不知道是否存在.

注意:我问的原因是因为我使用的是iPhone复选框,而且当我的复选框更改时我调用的功能相对较慢使它看起来很迟钝,而且根本不像iPhone那样:)

Mat*_*ott 7

为什么不推迟呢setTimeout

$("#mycheckbox").click(function() {
    setTimeout(slowFunction, 100);
}
Run Code Online (Sandbox Code Playgroud)

在点击事件发生后100ms将调用您的函数...调整以适应.