divをクリックしたときに入力要素にフォーカスしたい。jQueryでinput()要素を入力してもカーソルが表示されない
私のHTMLは次のようになります。
<div class="placeholder_input">
<input type="text" id="username" maxlength="100" />
<div class="placeholder_container">
<div class="placeholder">username</div>
</div>
</div>
そして、私のスクリプトは次のとおりです。
$("#username").focus(function() {
$(this).next().hide();
});
$(".placeholder_input").mousedown(function() {
$(this).children(":first").focus();
});
私はテキストボックスにクリックすると、プレースホルダのテキストが正しく消えますが、点滅するカーソルが表示されません。テキストボックスに。
mousedown
イベントハンドラの内部では、$(this).children(":first")
式は正しい入力要素を選択するため、focus()
呼び出しが機能しない理由はわかりません。
うわーまでフォーカスを遅らせます!あなたは正しい...しかし、なぜですか? – Zsolt
正直に分かりません。 [on()でテストする](http://jsfiddle.net/davidThomas/wpnNY/2/)は有用な情報を投げかけていないようです。 'mouseup'イベントが' mousedown'(そして 'focus()')の後に呼び出され、 '.placeholder_input'要素にフォーカスを戻し、' input'自体から離れているからです。 –