17

divがクリックされたときに入力要素にフォーカスしたい。

私の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()わかりません。

4

3 に答える 3

15

mousedownこのメソッドでは機能しません。ただし、mouseup()andclick()メソッドでは機能します。

$(".placeholder_input").mouseup(function() {              
    $(this).children(":first").focus();
});​

JSフィドルデモ

と:

$(".placeholder_input").click(function() {              
    $(this).children(":first").focus();
});​

JSフィドルデモ

参照:

于 2012-09-16T09:04:46.590 に答える
0

mousdown動作しません、を使用してclickください。

$(".placeholder_input").click(function() {              
    $(this).children(":first").focus();
});​
于 2012-09-16T09:05:18.617 に答える