Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript TypeError:$(…)。DataTable不是函数:DataTables在没有$.noConflict的情况下无法工作(true)_Javascript_Jquery_Datatables - Fatal编程技术网

Javascript TypeError:$(…)。DataTable不是函数:DataTables在没有$.noConflict的情况下无法工作(true)

Javascript TypeError:$(…)。DataTable不是函数:DataTables在没有$.noConflict的情况下无法工作(true),javascript,jquery,datatables,Javascript,Jquery,Datatables,我刚刚发现,我正在玩它。该页面的任务是根据客户机的参数搜索帖子,返回一个JSON,该JSON在不重新加载页面的情况下随时填充表。我面临的问题是: TypeError:$(…)。数据表不是函数。jQuery在数据表插件(完美)加载之前(完美)加载。jQuery不会被加载两次(除非DataTables自己加载jQuery,但我不这么认为)。 装货顺序正确。我使用的是Laravel,jQuery作为每个页面的第一个脚本加载到layouts/app.blade.php。所有视图都扩展了该布局,每个视图

我刚刚发现,我正在玩它。该页面的任务是根据客户机的参数搜索帖子,返回一个JSON,该JSON在不重新加载页面的情况下随时填充表。我面临的问题是:

  • TypeError:$(…)。数据表不是函数
    。jQuery在数据表插件(完美)加载之前(完美)加载。jQuery不会被加载两次(除非DataTables自己加载jQuery,但我不这么认为)。 装货顺序正确。我使用的是Laravel,jQuery作为每个页面的第一个脚本加载到
    layouts/app.blade.php
    。所有视图都扩展了该布局,每个视图的特定脚本都加载到
    @部分(“脚本”)

  • 在调用
    $(“#结果”).DataTable()之前,我找到并调用了
    $.noConflict(true)
    。现在,该插件工作正常,但与jQuery相关的所有其他内容都返回
    $不是函数(尤其是新的$.ajax调用)

我想了解为什么
TypeError:$(…).dataTable不是一个函数,在不使用
$的情况下抛出并解决它。noConflict(true)

有人知道吗

脚本的加载顺序:

layouts/app.blade.php

<!-- Scripts -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script>
<script src="{{ asset('js/admin/main.js') }}"></script>

@yield('scripts')
@extends('layouts.app')
@section('scripts')
    <script src="//cdn.jsdelivr.net/npm/flatpickr"></script>
    <script src="//cdn.datatables.net/1.10.18/js/jquery.dataTables.min.js"></script>
    <script src="{{ secure_asset('js/helpers.js') }}"></script>
    <script src="{{ secure_asset('js/admin/Values.js') }}"></script>
    <script src="{{ secure_asset('js/SVGTools.js') }}"></script>
    <script src="{{ secure_asset('js/admin/Search.js') }}"></script>
    <script src="{{ secure_asset('js/admin/Delete.js') }}"></script>
    <script src="{{ secure_asset('js/admin/blog/post/PostSearch.js') }}"></script>
    <script src="{{ secure_asset('js/admin/blog/post/index.behaviour.js') }}"></script>
@endsection
下面是将数据显示到表中的代码部分(在
PostSearch.js
):


尽管很遗憾,我没有找到问题的根源,但使用了
jQuery.noConflict()
而不是
$。noConflict()
使脚本正常工作,而没有造成以下
$
别名崩溃。

@t.J.Crowder感谢您的评论!我使用的是Laravel,jQuery加载到
layouts/app.blade.php
中的每个页面中。所有视图都扩展了该布局,每个页面的特定脚本在
@section(“scripts”)
@T.J.Crowder中加载。我编辑了我的问题,添加了显示我加载的脚本和顺序的代码。
this.search = function () {
    var getData = function () {
        var v = new Values();
        v.collect('getValue');
        console.log(v.getCollection.raw);

        return v.getCollection.raw;
    };

    /**
     * Display the data into the table.
     *
     * @param {Object} data
     * @param {Function} callback
     */
    var displayData = function (data, callback) {
        if ( ! data.length ) {
            //  No result
            document.getElementById('no-result').innerText = 'Nessun risultato per "'+document.getElementById('search').value+'"';
        } else {
            //  Yes results
            document.getElementById('no-result').innerText = "";

            // $.noConflict(true);
            $('#results').DataTable( {
                "ordering": true,
                "data": data,
                "searching": true,
                "columns": [
                    {'data':'id'},
                    {'data':'title'},
                    {'data':'category'},
                    {'data':'article'},
                    {'data':'likes'},
                    {'data':'status'},
                    {'data':'publication_datetime'},
                    {'data':'id'}
                ]
            });
        }

        callback();
    };

    /**
     * Empty the table.
     */
    var emptyData = function () {
        document.getElementsByTagName('tbody')[0].innerHTML = '';
    };

    new Search({
        events: {
            "click": document.getElementById('search')
        },
        url: function () {
            return route_resource_admin_blog('posts', 'show', 'search')
        },
        data: function () {
            return getData();
        },
        clear: function () {
            emptyData();
        },
        previousStuff: function (target, searchTerm) {

        },
        successCallback: function (data, textStatus, jqXHR) {
            console.log('SUCCESS');
            displayData(data, function () {

            });
        },
        errorCallback: function (jqXHR, textStatus, errorThrown) {

        },
        beforeSend: function (jqXHR, settings) {

        },
        complete: function (jqXHR, textStatus) {

        }
    });
};