【问题标题】:jquery trigger focus does not work in chromejquery触发焦点在chrome中不起作用
【发布时间】:2018-09-05 13:08:21
【问题描述】:

我的网站上有一个表格,我从获取请求变量中填写了所有字段。在输入字段的 2 中,我正在执行谷歌地图应用程序以计算距离。

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

我的代码

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);

【问题讨论】:

    标签: jquery google-chrome triggers safari focus


    【解决方案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);
    

    【讨论】:

    • 别忘了把你的代码放在$(function(){ your code }) 中,以确保它会在 DOM 准备好时执行
    猜你喜欢
    • 2013-06-27
    • 1970-01-01
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2011-08-17
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    相关资源
    最近更新 更多