JavaScript 在 Safari 中不起作用,但在 Firefox 和 Chrome 中起作用

JavaScript doesn't work in Safari but does in Firefox and Chrome

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

我追踪到 return 是真的;陈述。如果我将它设置为 return false; Safari 正常工作,除了表单不提交。如果我将它设置为 return 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>

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