手动触发焦点输入Iphone问题

我试图在点击另一个元素后聚焦textarea。 桌面浏览器似乎工作正常但不是Iphone。

$('.reveal_below').on('change', function(e) { e.preventDefault(); var item_id = $(this).attr('data-item-id'); if (this.checked) { $('.hidden_below__' + item_id).css({ 'margin-left': '0px', display: 'block', opacity: '0' }).animate({ 'margin-left': '15px', opacity: '1' }, 250, function() { console.log("-----------"); $("#x").focus(); }) } else { $('.hidden_below__' + item_id).slideUp(); } }); 

这是一个小小的演示

它会将textarea集中在复选框的更改事件上。 这就是问题,如何通过演示中的动画来解决这个问题?

您必须使用touchstart事件来解决此问题。

 $(document).ready(function() { $('button').on('click', function() { $('#x').css({ 'margin-top': '0px', display: 'block', opacity: '0' }).animate({ 'margin-top': '15px', opacity: '1' }, 100 ) $('#x').trigger('touchstart'); //trigger touchstart }); $('textarea').on('touchstart', function() { $(this).focus(); }); });