【问题标题】:JavaScript doesn't work in Safari but does in Firefox and ChromeJavaScript 在 Safari 中不起作用,但在 Firefox 和 Chrome 中起作用
【发布时间】:2020-03-25 03:54:40
【问题描述】:

我有一个要使用 Parsley 验证的表单。提交按钮具有以下 JavaScript 代码,以便通过 css 进行动画处理。这在 Firefox 和 Chrome 中完美运行,但在 Safari(桌面和 iOS)中什么也不做。表单验证得很好,但动画没有运行。

我追踪到返回 true;陈述。如果我将其设置为返回 false; Safari 可以正常工作,只是没有提交表单。如果我将其设置为返回 true;它适用于我测试过的所有地方,除了 Safari。

我已经阅读了很多关于 Safari 与 jQuery 的工作方式不同的文档,因此必须修改 JS 代码才能使其真正成为跨浏览器。我怎样才能修改它以在任何地方工作?

<script type="text/javascript">
  $(function() {
    $('#login-form').parsley().on('form:submit', function() {
      $(".loginbutton").addClass("loginactive");
      $(".loginbutton").css("background", "transparent");

      setTimeout(function() {
        $(".loginbutton").addClass("loginsuccess");
        $(".loginbutton").css("background", "none repeat scroll 0 0 #ffffff");
      }, 3700);
      return true;
    });
  });
</script>

【问题讨论】:

  • 尝试在 setTimeout 中使用bind(),例如 setTimeout(function() { ... }.bind(this),250);
  • 不会改变任何东西来添加它。感谢您的尝试。

标签: javascript jquery css safari


【解决方案1】:

答案是 Safari 将停止加载另一个对象(python 脚本、另一个 url 等)时的所有动画,并且您基本上无能为力。它只会显示css动画的第一帧。所以,我所做的是修改登录按钮,使其在提交表单时看起来与显示登录不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2014-04-03
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    相关资源
    最近更新 更多