所以我已经四处寻找这个,因为我需要解决一个iOS错误,而且我的模拟点击似乎都没有效果。我试图手动关注textarea元素,但要做到这一点,我需要手动模拟所述textarea元素的点击。所以这就是我尝试过的事情:
$('#text-input')[0].click();
$('#text-input').click();
$('#text-input').trigger('click');
$('#text-input').focus();
和
$('#text-input').on('click', function {
$(this).focus();
});
$('#text-input').trigger('click');
$('#text-input').on('touchstart', function {
$(this).focus();
});
$('#text-input').trigger('touchstart');
HTML:
<textarea id="comment-input" class="comment-input" rows="1" maxlength="{{maxTextLength}}" ng-model="newMessage.content" placeholder="{{ messagePlaceholder }}" />
关于为什么这不起作用的任何想法?
答案 0 :(得分:0)
尝试.focus
代替click
$('#text-input').trigger('focus');
或只是
$('#text-input').focus();
<强>更新强>
您可以尝试在大多数情况下都适用的setTimeout
$("#text-input").on("click", function(event) {
setTimeout(function() {
$(event.target).select(); //or $(event.target).focus();
}, 1);
});
更新2
您还可以尝试使用
之类的touchstart
事件
//trigger touch on element to set focus
$("#text-input").trigger('touchstart');
//event handler to set the focus()
$('#text-input').on('touchstart', function () {
$(this).focus(); // inside this function the focus works
});