我的网站上有一个表单,我填写了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);
答案 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);