jQuery触发器焦点在Chrome中不起作用

时间:2018-09-05 13:08:22

标签: jquery google-chrome triggers safari focus

我的网站上有一个表单,我填写了get请求变量中的所有字段。在输入字段2中,我正在执行google maps应用程序以计算距离。

当我从请求中读取值时,我想触发焦点事件以便自动调用gmaps应用并计算距离。触发器功能SOMETIMES始终在Firefox,Explorer和Edge中起作用,但在chrome和safari中不起作用。我正在尝试设置超时时间,但问题仍然存在。

我的代码

setTimeout(function() {
    $('#option_31').trigger("focus");
    $('#option_31').on("focus", function(){
        //do staff
    });
    $('#option_32').trigger("focus");
    $('#option_32').on("focus", function(){
        //do staff
    });
}, 2000);

1 个答案:

答案 0 :(得分:1)

您正在尝试在设置事件处理程序之前触发超时。 在某些平台上,某些浏览器的触发速度可能很慢,或者事件处理程序的设置速度如此之快,以至于您的代码在那里可以工作

最好不要在超时内设置事件处理程序:

$('#option_31').on("focus", function(){
    //do stuff
});     
$('#option_32').on("focus", function(){
    //do stuff
});

setTimeout(function() {
  $('#option_31').trigger("focus");
  $('#option_32').trigger("focus");
}, 2000);