【问题标题】:(..).select2 is not a function(..).select2 不是函数
【发布时间】:2020-02-04 18:01:31
【问题描述】:

我已经尝试了'Select2() is not a function'的解决方案,但我仍然无法确定问题出在哪里..我在控制台中收到此警告,我不知道它是否与问题有关

与跨站点资源关联的 cookie http://cloudflare.com/ 设置时没有 SameSite 属性。一种 未来的 Chrome 版本将只提供跨站点的 cookie 请求是否设置为 SameSite=NoneSecure。你可以 在开发者中查看 cookie

<html>
<head>
  <meta charset="utf-8">
  <script src="https://code.jquery.com/jquery-1.12.3.js" integrity="sha256-1XMpEtA4eKXNNpXcJ1pmMPs8JV+nwLdEqwiJeCQEkyc=" crossorigin="anonymous"></script>
  <link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/css/select2.min.css" rel="stylesheet" />
  <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.1/js/select2.min.js"></script>
  <script src="/assets/newDailyDetail.js"></script>
  <link rel="stylesheet" href="/css/new.css">
  <link rel="stylesheet" href="/css/css/bootstrap.min.css">
</head>

<body>
  <select class="browser-default custom-select" name="childId" id="childName">
    <option disabled selected>Select the Child..</option>
    <% child.forEach((childItem) => { %>
      <option value="<%= childItem.childId %>">
        <%=childItem.childName %>
      </option>
      <%    })  %>
  </select>
  <script type="text/javascript">
    $(document).ready(function() {
      $('#childName').select2({

      })
    })
  </script>
</body>
</html>

【问题讨论】:

  • 您问题中的代码工作正常,正如您从我编辑的 sn-p 中看到的那样。检查控制台是否有其他错误,例如脚本被阻止
  • 我刚刚收到此警告 在未设置 SameSite 属性的情况下设置了与 cloudflare.com 处的跨站点资源关联的 cookie。未来版本的 Chrome 将仅通过设置为 SameSite=NoneSecure 的跨站点请求传递 cookie。您可以在开发者工具中的 Application>Storage>Cookies 下查看 cookie,并在 chromestatus.com/feature/5088147346030592chromestatus.com/feature/5633521622188032 查看更多详细信息。
  • 是的,在你编辑后它工作正常,但仍然得到让我感到困惑的错误
  • 代码运行良好。也许这会有所帮助:stackoverflow.com/questions/58211333/…

标签: jquery node.js jquery-select2 ejs


【解决方案1】:

DOM 尚未准备好。试试这个:

$(document).ready(function() {
    $('.js-example-basic-single').select2();
});

【讨论】:

  • 您的代码应该使用 document.ready,正如 Jonathan 建议的那样,请检查控制台错误并检查选择选项是否正确填充
  • 我包含它并选择选项正确填充,但仍然有错误..我编辑我的问题
  • 当您将 jQuery 逻辑放在页面末尾 &lt;/body&gt; 之前,您不需要 document.ready 处理程序,因为 OP 是
【解决方案2】:

我已经解决了..我在我的layOut中使用jQuery所以当我在我的layOut.ejs中删除jquery cdn..它工作正常

【讨论】:

    猜你喜欢
    • 2013-11-30
    • 2018-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 2016-09-05
    • 1970-01-01
    • 2019-10-21
    • 2021-06-22
    相关资源
    最近更新 更多