javascript – Jquery元素仅在页面刷新后才起作用

我正在构建基于Reacts的应用程序,我在页面上有一些
jquery元素,例如
JqueryUI日期选择器和bootstraps工具提示.

问题是这些选项在我重新加载页面之前不起作用.

所以它就像第一次没有加载jQuery脚本一样.

我查看了控制台,看不到任何与jQuery / javascript相关的错误.

任何帮助将非常感激.这是我的index.html页面

<!doctype html>
<html class="no-js" lang="">
  <head>
      <meta charset="utf-8">
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta name="description" content="">
      <meta name="viewport" content="width=device-width">

      <title>ICETEA</title>

      <!-- Latest compiled and minified JavaScript -->
      <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

      <script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>

      <!-- JQuery UI JS - Used for the datepicker -->
      <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

      <!-- Bootstrap theme -->
      <link href="//netdna.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" rel="stylesheet">

      <link rel="stylesheet" href="/css/main.css">
      <!-- JQuery UI CSS - Theme: Blitzer, used for the datepicker -->
      <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/blitzer/jquery-ui.css">

  </head>
  <body>

    <div id="app"></div>

    <script src="/js/main.js"></script>

    <script>
      $(document).ready(function(){
          $('[data-toggle="tooltip"]').tooltip();
      });
    </script>

    <script>
      $(function() {
        $( "#datepicker" ).datepicker();
        $( "#datepicker" ).change(function() {
          $( "#datepicker" ).datepicker( "option", "dateFormat", "DD d MM" );
        });
      });
    </script>

  </body>
</html>

最佳答案 可能发生的是您的初始页面加载尝试从网络加载所有内容,而第二个加载从浏览器缓存中检索资产.您可以使用开发人员工具来验证这一点,以便始终加载不带缓存;如果我的假设是正确的,那么即使你重新加载页面,你也会看到错误的普遍性.

正如@vanburen在评论中指出的那样,可能的解释是你没有正确地订购你的脚本.应该始终首先加载jQuery,但是现在你已经在Bootstrap之后得到了它.当您尝试在打开开发人员工具的情况下按原样加载页面时,您会看到控制台错误:

Uncaught Error: Bootstrap’s JavaScript requires jQuery(anonymous function) @ bootstrap.min.js:6

作为额外的优化,您可以考虑将CSS放在同步脚本之前,这样浏览器可以在同时加载JavaScript时加载和解析它们.

结论:确保熟悉您的开发人员工具.当您遇到意外行为时,它们应始终是您的第一个资源.

点赞