基本的に私はフォームを持っています。フォームの上に、フォームに固定するリンクがあります。誰かがアンカーをクリックすると、フォーム入力の css が変更され、赤い境界線が表示されます。また、タイマーを設定して、数秒後に元の境界線の色を復元します。問題は、このすべてのプロセスが発生した後、誰かが入力をクリックすると、:focus が機能しなくなることです。(境界線をより暗い色にするために使用される :focus )。ちなみにjQueryを使っています。
どうすればこれを回避できますか? アンカーが適用された後でも :focus が正常に発生するようにします。これがフィドルリンクhttp://jsfiddle.net/LSpm8/で、コードは次のとおりです。
JS
$("#anchor").click(
function () {
clearTimeout($.data(this, 'timer'));
$("#form input").css({
'border': '1px solid red'
});
$.data(this, 'timer', setTimeout($.proxy(function() {
$("#form input").css({
'border': '1px solid #CCC'
});
}, this), 1800));
}
);
CSS
input { border: 1px solid #CCC; }
input:focus { border: 1px solid #000; }
HTML
<a href="#form" id="anchor">Link</a>
<form id="form">
<input type="text" />
</form>