Voglio mettere a fuoco un elemento di input quando si fa clic su un div.focus() elemento di input con jQuery, ma il cursore non appare
mio HTML simile a questa:
<div class="placeholder_input">
<input type="text" id="username" maxlength="100" />
<div class="placeholder_container">
<div class="placeholder">username</div>
</div>
</div>
E il mio script è:
$("#username").focus(function() {
$(this).next().hide();
});
$(".placeholder_input").mousedown(function() {
$(this).children(":first").focus();
});
Quando clicco nella casella di testo, il testo segnaposto scompare in modo corretto, ma il cursore lampeggiante non mostra nella casella di testo. (E non riesco a digitare il testo nella casella di testo)
All'interno del gestore mousedown
eventi, l'espressione $(this).children(":first")
seleziona l'elemento di input corretto, quindi non ho idea del perché la chiamata focus()
non funziona.
Wow! Hai ragione ... Ma perché? – Zsolt
Sinceramente non ne sono sicuro; e [testando con 'on()'] (http://jsfiddle.net/davidThomas/wpnNY/2/) non sembra lanciare alcuna informazione utile. Sospetto che sia perché l'evento 'mouseup' viene chiamato dopo il' mousedown' (e 'focus()'), che richiama l'attenzione sull'elemento '.placeholder_input', e lontano dall'ingresso' stesso'. –