Javascript 触发器';touchstart';在setTimeout内不工作

Javascript 触发器';touchstart';在setTimeout内不工作,javascript,jquery,ios,mobile,settimeout,Javascript,Jquery,Ios,Mobile,Settimeout,我想在setTimeout函数中触发对手机输入的关注。这很好: $('input').on('touchstart', function(){ $(this).focus(); }); $('input').trigger('touchstart'); 但是,这不起作用: setTimeout(function(){ $('input').on('touchstart', function(){ $(this).focus(); }); $('i

我想在setTimeout函数中触发对手机输入的关注。这很好:

$('input').on('touchstart', function(){
    $(this).focus();
});
$('input').trigger('touchstart');
但是,这不起作用:

setTimeout(function(){
    $('input').on('touchstart', function(){
        $(this).focus();
    });
    $('input').trigger('touchstart');
},200);

占位符会消失,就好像输入被聚焦一样,但键盘和光标不会出现。我不知道为什么。有什么方法可以让它工作吗?

将超时与设置侦听器分开:

// It's ok to listen
$('input').on('touchstart', function(){
        $(this).focus();
    });

// Trigger only when you want it
setTimeout(function(){
    $('input').trigger('touchstart');
},200);

我不知道你为什么需要暂停,但这似乎有效

$('input')。在('touchstart',function()上{
$(this.focus();
});
setTimeout(函数(){
$('input')。触发器('touchstart');
}, 200);