Lorsque je clique sur un bouton, je souhaite que textarea
dans cet élément li
se concentre.
<li class="commentBlock" id="commentbox-79" style="display: list-item;">
<div>
<div class="grid userImageBlockS">
<div class="imgSmall">
<img width="35" height="35" alt="image" src="/bakasura1/files/images/small/1288170363aca595cabb50.jpg">
</div>
</div>
<div class="grid userContentBlockS alpha omega">
<form accept-charset="utf-8" action="/bakasura1/account/saveComment" method="post">
<div style="display: none;">
<input type="hidden" value="POST" name="_method">
</div>
<input type="hidden" id="StatusMessageReplyPid" value="79" name="data[StatusMessageReply][pid]">
<input type="hidden" id="StatusMessageReplyItemId" value="1" name="data[StatusMessageReply][item_id]">
<input type="hidden" id="StatusMessageReplyCommentersItemId" value="1" name="data[StatusMessageReply][commenters_item_id]">
<textarea id="StatusMessageReplyMessage" name="data[StatusMessageReply][message]">
Write your comment...
</textarea>
<input type="submit" name="" value="Comment" class="comment" id="comment-79">
</form>
</div>
<div class="clear"></div>
</div>
</li>
Voici mon code jQuery
:
$('.user-status-buttons').click(function() {
var id = $(this).attr('id');
$("#commentbox-"+id).slideToggle("fast");
$("#commentbox-"+id+" #StatusMessageMessage").focus();
return false;
});
Sur la base de votre commentaire en réponse à Jacob, vous voulez peut-être:
$('.user-status-buttons').click(function(){
var id = $(this).attr('id');
$("#commentbox-"+id).slideToggle("fast", function(){
$("#commentbox-"+id+" #StatusMessageReplyMessage").focus();
});
return false;
});
Cela devrait donner au #StatusMessageReplyMessage
focus élément après l'effet de diapositive est terminé.
J'utilise la minuterie pour concentrer les zones de texte:
setTimeout(function() {
$el.find('textarea').focus();
}, 0);
La solution la plus simple consiste à utiliser jQuery focus
$('#StatusMessageReplyMessage').focus();
REMARQUE: si vous testez cela dans la console, Chrome renverra le focus à la console! Cela peut vous faire croire que cela n'a pas fonctionné alors qu'en fait il fonctionne parfaitement. d'autres scripts/comportements de capture de focus dans votre environnement et tout ira bien :)