JS / jQuery - 强制单击textarea元素

时间:2015-06-10 03:15:12

标签: javascript jquery html ios

所以我已经四处寻找这个,因为我需要解决一个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 }}" />

关于为什么这不起作用的任何想法?

1 个答案:

答案 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
});