未捕获的类型错误:jQuery(...).select2不是函数Laravel 5.3

nimxete2  于 2023-03-29  发布在  jQuery
关注(0)|答案(5)|浏览(134)

我正在使用Select2,看到下面的错误。这是我的文件:

@extends('layouts.app')
<link rel="stylesheet" type="text/css" href="{{URL::asset('css/select2.min.css')}}">

    @section('content')
    <div class="container">
        <div class="row">
            <div class="col-md-8 col-md-offset-2">
                <div class="panel panel-default">
                    <div class="panel-heading">Dashboard</div>

                    <div class="panel-body">
                         <select name="primaryLanguage" id="primaryLanguage">
                          <option value="AL">Alabama</option>
                          <option value="WY">Wyoming</option>
                        </select>
                    </div>
                </div>
            </div>
        </div>
    </div>
    @endsection
    <script type="text/javascript" src="{{URL::asset('js/jquery-1.10.2.js')}}"></script>
    <script type="text/javascript" src="{{URL::asset('js/select2.full.min.js')}}"></script>
    <script type="text/javascript">
        jQuery(document).ready(function(){
            jQuery("primaryLanguage").select2();
        });
    </script>

我不断得到的错误:

home:7 Uncaught TypeError: jQuery(...).select2 is not a function(anonymous function) @ home:7fire @ jquery-1.10.2.js:3101self.fireWith @ jquery-1.10.2.js:3213jQuery.extend.ready @ jquery-1.10.2.js:3425completed @ jquery-1.10.2.js:3455
jquery-1.9.0.js:1 '//@ sourceURL' and '//@ sourceMappingURL' are deprecated, please use '//# sourceURL=' and '//# sourceMappingURL=' instead.
62o28rlo

62o28rlo1#

我只是面对你自己的问题,我是这样解决的:把这些

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="/js/select2.min.js"></script>

在你的主布局文件(在我的例子app.blade.php),然后在这些脚本下放@yield('scripts')然后在你的刀片文件中,你想调用插件,在

@section('content') 
...
@endsection
@section('scripts')
 <!-- Here you call the select2 js plugin -->
@endsection

PS:你必须把css文件和js文件放在公共文件夹下(public/css & public/js),这里我使用Laravel Collective来创建表单,希望对你有所帮助

1cklez4t

1cklez4t2#

只需从主布局中删除此代码

<script src="{{ asset('js/app.js') }}" defer></script>
bvhaajcl

bvhaajcl3#

试着修改一下

<script type="text/javascript">
   jQuery(document).ready(function(){
       jQuery("#primaryLanguage").select2();
   });
</script>

在你的代码中,你引用了一个名为primaryLanguage的标签。但实际上它是一个id。因此,你缺少#来指定具有特定'id'的tag

d7v8vwbk

d7v8vwbk4#

在您的代码primaryLanguage中,您使用的是id,因此现在更改一个小代码:

<script type="text/javascript">
  jQuery(document).ready(function(){
    jQuery("#primaryLanguage").select2();
  });
</script>
inb24sb2

inb24sb25#

在我的情况下,我使用Laravel mix,我认为错误是通过调用脚本js/app.js发生的,最后应该先调用它,我这样做了,它得到了解决

相关问题