2012-03-19 12 views
3

jQueryを使用して、チェックボックスでクリックイベントを取得し、関数を呼び出しています。チェックボックスの。イベントを発生させます。チェックボックスがオンになっていますか?

私の問題はこれです。私が呼び出す機能は比較的遅く、チェックボックスがオンになるまでユーザーが目に見える遅延を見て、インターフェイスが遅くて控えめに見えます。

このバイオリンは、問題を示していますhttp://jsfiddle.net/ZkUgq/4/か、ここのコード:

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

クリックイベントがまだslowFunctionを発射、しかしにおけるダニの出現を遅らせないように、私は物事を変えることができる方法はありますチェックボックス?

理想的には、チェックボックスのonCheckedイベントですが、それが存在するかどうかわかりません。

NB:私はiPhone Checkboxを使用していますので、私は求めている理由であり、私のチェックボックスの変更は、それが低迷見えるのではなく、iPhoneのような全く:)

答えて

7
ときに私が呼んで比較的遅い機能

setTimeoutでそれを延期してみませんか?

$("#mycheckbox").click(function() { 
    setTimeout(slowFunction, 100); 
} 

clickイベントが発生してから100ms後に関数を呼び出す...これに合わせて調整します。

1

settimeoutは、チェックボックスチェックイベントが発生するまで、slowFunction呼び出しを延期します。

$('#mycheckbox').click(function() {  
     setTimeout(slowFunction,500); 
}); 
関連する問題