次のコードが機能しないのはなぜですか?私はその入力が1秒間無効になり、その後再び正常になることを望みます。Jqueryの遅延を無効にしました
$('#chat_bg').attr('disabled', true).delay(1).$('#chat_bg').attr('disabled', false);
次のコードが機能しないのはなぜですか?私はその入力が1秒間無効になり、その後再び正常になることを望みます。Jqueryの遅延を無効にしました
$('#chat_bg').attr('disabled', true).delay(1).$('#chat_bg').attr('disabled', false);
、および.delay()
はミリ秒単位ではなく秒として引数を解釈しているという事実:
.delay()
は.attr()
が相互作用しない、デフォルトでevents
キューに影響を与えます。
簡単にして、そのままsetTimeout
を使用してください。
var $elt = $('#chat_bg').attr('disabled', true);
setTimeout(function()
{
$elt.attr('disabled', false);
}, 1000);
あなたはfx
キュー(この場合)に機能を追加するためにqueue
[docs]を使用することができます。
$('#chat_bg').prop('disabled', true).delay(1000).queue(function(next) {
$(this).prop('disabled', false);
next();
});
delay
[docs]はミリ秒とfx
キューに作業しているだけで効果機能では時間がかかります。ほとんどの機能は、attr
のようにキューに全く追加されません。この場合は、関数を明示的にキューに入れる必要があります(上記のように)。
また、ブール値を設定するときは、prop
[docs]を代わりに使用する必要があります。
それとも単に@Matt describesとして、setTimeout
を使用しています。別に文法的に間違っJavaScriptから
'delay(1)。$( '#chat_bg')は無効です。 –