2016-12-22 69 views
-3

我的select2不起作用。這只是表明了多個選擇框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> 

錯誤控制檯: 遺漏的類型錯誤:$(...)選擇2是不是在HTMLDocument的一個功能 。

JS FIDDLE:

https://jsfiddle.net/y6ogss94/

+1

你必須在控制檯中的錯誤:'類型錯誤:$(...)選擇2是不是它似乎是一個function'。 select2沒有很好的導入。 – AnthonyB

+0

@AnthonyB Uncaught TypeError:$(...)。select2不是HTMLDocument的函數 。

+1

嘗試在'select2'之前包含'jquery' – raser

回答

3

這運行正常,如果你有正確導入 - jQuery庫,選擇2 JS和CSS選擇2。

這裏,我已經進口的jQuery 2.0.0和select2 CSS和JS從他們的CDN和正常工作:

$(".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>

注: 您需要執行您選擇2初始化代碼只有在你包含js庫和DOM已經加載後,這是大多數jQuery插件的一般做法,不僅如此。因此,在使用該代碼,您應該包括jQuery和選擇2腳本後寫這個劇本:

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

您可能要在DOM加載後使用初始化select2。所以你可以在_DOMContentLoaded_事件中初始化它。重要的是在導入jquery和select2腳本後使用select2。 – AnthonyB

+0

是啊,你是對的@AnthonyB。謝謝。但我認爲代碼片段會自動將所有腳本代碼放在「$(document).ready()」之類的內容中,因此只有在加載DOM後才能運行。雖然我不確定。 –

+0

我認爲這是片段,但由於人們會複製/粘貼這段代碼來修復它們的Select2問題,所以在導入腳本之後使用Select2以及可能在'$(document).ready()' – AnthonyB