この質問には、JavaScriptで驚くほどトリッキーな答えがあります。これは、値aとを渡すためですb。GerardSextonのソリューションを検討してください
$("#Delay").click(function() {
delayCallBack(function() {
someFunction(a,b);
}, 100);
});
そのコードが何をするかは、どこaでb定義されているか、そしてハンドラーがバインドされた後にそれらに何が起こるかによって異なります。それを文脈に置いたとしましょう:
$(function () {
var a, b;
a = b = 5;
$("#Delay").click(function() {
delayCallBack(function() {
someFunction(a,b);
}, 100);
});
a = b = 7;
}
次に、ではなく、someFunctionで呼び出されます。最初の値が必要な場合は、ハンドラーをバインドするときに値をコピーする必要があります。そのようです:a=b=7a=b=5
$(function () {
var a, b;
function bind(a, b) {
$("#Delay").click(function() {
delayCallBack(function() {
someFunction(a,b);
}, 100);
});
}
a = b = 5;
bind(a, b);
a = b = 7;
}