2016-12-22 21 views
-3

私のselect2は機能しません。 キャッチされない例外TypeError:それはちょうど、複数の選択ボックスコンソールでselect2が動作しません

<form action=""> 
<select class="js-example-basic-multiple" multiple="multiple"> 

<option value="AK">Alaska</option> 
<option value="HI">Hawaii</option> 

<option value="CA">California</option> 
<option value="NV">Nevada</option> 
<option value="OR">Oregon</option> 
<option value="WA">Washington</option> 

<option value="AZ">Arizona</option> 
<option value="CO">Colorado</option> 
<option value="ID">Idaho</option> 
<option value="MT">Montana</option> 
<option value="NE">Nebraska</option> 
<option value="NM">New Mexico</option> 
<option value="ND">North Dakota</option> 
<option value="UT">Utah</option> 
<option value="WY">Wyoming</option> 

    </select> 
</form> 
<script type="text/javascript"> 
       $(".js-example-basic-multiple").select2(); 
</script> 

エラーで表示されます。$(...)SELECT2がHTMLDocumentのでの関数 ではありません。

JS FIDDLE: - jQueryライブラリ、SELECT2 JSとSELECT2のCSSあなたは正しくインポートされている場合

https://jsfiddle.net/y6ogss94/

+1

をあなたは、コンソールにエラーがあります: 'TypeError例外:$(...)をSELECT2は、それはそうfunction'ではありません。 select2はうまくインポートされません。 – AnthonyB

+0

@AnthonyB Uncaught TypeError:$(...)。select2はHTMLDocumentの関数 ではありません。 select2' '前jquery''含め

+1

てみシーケンスが正しいか(* jQueryとその後、Selectセレクト*)とjQueryを複数回ロードされていない場合、私はSELECT2 – raser

答えて

3

は、これが細かい実行されます。

ここ

私は彼らのCDNからjQueryの2.0.0とselect2 CSSやJSを輸入してきたし、それが正常に動作します:

$(".js-example-basic-multiple").select2();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet" /> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.min.js"></script> 
 

 

 
<form action=""> 
 
<select class="js-example-basic-multiple" multiple="multiple"> 
 

 
<option value="AK">Alaska</option> 
 
<option value="HI">Hawaii</option> 
 

 
<option value="CA">California</option> 
 
<option value="NV">Nevada</option> 
 
<option value="OR">Oregon</option> 
 
<option value="WA">Washington</option> 
 

 
<option value="AZ">Arizona</option> 
 
<option value="CO">Colorado</option> 
 
<option value="ID">Idaho</option> 
 
<option value="MT">Montana</option> 
 
<option value="NE">Nebraska</option> 
 
<option value="NM">New Mexico</option> 
 
<option value="ND">North Dakota</option> 
 
<option value="UT">Utah</option> 
 
<option value="WY">Wyoming</option> 
 

 
    </select> 
 
</form>

注:あなたは、あなたのSELECT2の初期化を実行する必要があり コードは、jsライブラリとDOMが両方ともロードされた後でなければなりません。これは、ほとんどのjQueryプラグインの一般的なプラクティスです。このコードを使用しているので、あなたはjQueryとSELECT2スクリプトを含む後にこのスクリプトを記述する必要があります

<script> 
$(document).ready(function(){ 
    $(".js-example-basic-multiple").select2(); 
});//document ready 
</script> 
+0

ますDOMがロードされるとselect2を初期化することができます。そのため、_DOMContentLoaded_イベントの内部で初期化することができます。重要なのはselect2をjqueryとselect2スクリプトをインポートした後に使用することです。 – AnthonyB

+0

ええ、あなたは正しい@AnthonyBです。ありがとう。しかし、私はコードスニペットが自動的に "$(document).ready()"のようなものの中にすべてのスクリプトコードを置くと思うので、DOMがロードされた後にのみ実行されます。私は確信していません。 –

+0

スニペットは私が思うのですが、Select2の問題を修正するためにこのコードをコピー/ペーストするので、スクリプトをインポートした後にSelect2を使用し、おそらく '$(document).ready()' – AnthonyB

関連する問題