未捕获的TypeError:$(...).tooltip不是函数

Ama*_*les 6 javascript jquery

我有一个基于Spring Web模型 - 视图 - 控制器(MVC)框架的项目.在WebLogic Server版本上部署的Spring Web模型 - 视图 - 控制器(MVC)框架版本为3.2.8:12.1.2.0.0

我有这个错误加载1 JSP

未捕获的TypeError:$(...).tooltip不是函数

这是我加载的所有内容,我逐一检查并加载了所有这些内容

<link href="/tdk/styles/bootstrap.css" type="text/css" rel="stylesheet">
<link href="/tdk/styles/admin.css" type="text/css" rel="stylesheet">
<link href="/tdk/styles/jquery.dataTables.css" type="text/css" rel="stylesheet">
<link href="/tdk/styles/dataTables.bootstrap.css" type="text/css" rel="stylesheet">
<link href="/tdk/styles/slides.css" type="text/css" rel="stylesheet">

<script src="/tdk/scripts/jquery.min.js" type="text/javascript"></script>
<script src="/tdk/scripts/bootstrap.js" type="text/javascript"></script>
<script src="/tdk/scripts/jquery.dataTables.js" type="text/javascript"></script>
<script src="/tdk/scripts/dataTables.bootstrap.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js" type="text/javascript"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>


<script type="text/javascript">
  $(document).ready(function() {
    $('[data-toggle="tooltip"]').tooltip();
    var selected = [];
    var table = $('#example').DataTable({
      "dom": '<"top">rt<"bottom"lp><"clear">',
      "autoWidth": false,
      "paging": false,
      "scrollX": false,
      "scrollY": 300,
      "scrollCollapse": true,
      "rowCallback": function(row, data) {
        if ($.inArray(data.DT_RowId, selected) !== -1) {
          $(row).addClass('selected');
        }
      },
      "columnDefs": [{
        "targets": 'nosort',
        "orderable": false
      }, ]
    });
    $('#example tbody').on('click', 'input', function() {
      $(this).closest("tr").toggleClass('selected');

      if ($(this).is(':checked')) {
        var theNameOfSelectedProduct = $(this).closest("tr").find("td.productname").text();
        $('#selecteddevices').val($('#selecteddevices').val() + " " + theNameOfSelectedProduct);
        $('#actions4devices button').removeAttr("disabled");
      } else {
        var theNameOfSelectedProduct = $(this).closest("tr").find("td.productname").text();
        $('#selecteddevices').val($('#selecteddevices').val().replace(theNameOfSelectedProduct, ""));
        if ($('#selecteddevices').val().trim().length == 0) {
          $('#actions4devices button').not('.pull-right').attr("disabled", "disabled");
        }
      }
    });
    $('#refusedevicesButtonId').on('click', function() {
      $('#theRefuseFile').show();
    });
  });
</script>
Run Code Online (Sandbox Code Playgroud)

Pat*_*ore 18

我们能看到你在哪里使用$.tooltip()吗?它有可能发生在jQuery UI嵌入行之前的某个地方.所以尝试重新安排你的脚本,所以jQuery是第一个,jQuery UI是第二个,然后是其余的.

    <script src="/tdk/scripts/jquery.min.js"                type="text/javascript"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script src="/tdk/scripts/bootstrap.js"                 type="text/javascript"></script>
    <script src="/tdk/scripts/jquery.dataTables.js"         type="text/javascript"></script>
    <script src="/tdk/scripts/dataTables.bootstrap.js"  type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

很难知道没有看到您的完整代码并知道哪些文件包含您的电话$.toolTip().

另外一个快速的尝试将替换jQuery$你使用在哪里,即:

$(".tips").toolTip()

会成为:

jQuery(".tips").toolTip()

  • 如果jQuery是问题,则错误将是$未定义。 (2认同)

Leo*_*Leo 5

请注意jquery-ui有自己的 .tooltip() 函数,Bootstrap也有。

尝试重新排序您的 js 文件,例如

<script src="/tdk/scripts/jquery.min.js"              type="text/javascript"></script>
<!-- Jquery - ui right after-->
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="/tdk/scripts/bootstrap.js"                 type="text/javascript"></script>
<script src="/tdk/scripts/jquery.dataTables.js"         type="text/javascript"></script>
<script src="/tdk/scripts/dataTables.bootstrap.js"  type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

  • 如果您正在使用 Bootstrap 的 tooltip() 函数,您可能希望构建自己的 jQuery UI 风格,但不包括 tooltip() 但保留您确实需要的部分。 (2认同)
  • 这不会导致“不是函数”错误。它只会调用错误的函数。 (2认同)