![](/img/trans.png)
[英]select2.js and chosen.js not rendering properly on dropdown menu
[英]External JavaScript and Dropdown Menu not Properly Rendering in Browser
我試圖制作一個下拉菜單,該菜單使用外部Javascript函數/文件進行調用,並根據用戶的選擇替換圖片,但由於某些原因圖片不會更改。 下拉菜單和默認圖像一起顯示,因為它是硬編碼的,但圖片沒有變化。 這是我第一次使用JavaScript,因此我確定它充滿了錯誤,但我們將不勝感激。 我真的不知道我在做什么
這是HTML:
<!DOCTYPE html>
<html>
<head>
<title>All Seasons</title>
</head>
<body>
<script src = "allseasons.js"></script>
<img id="myimage" src="winter.jpg" alt="current season." />
<select name="seasons">
<option>
Winter
<button onclick="changepic('winter')"></button>
</option>
<option>
Spring
<button onclick="changepic('spring')"></button>
</option>
<option>
Summer
<button onclick="changepic('summer')"></button>
</option>
<option>
Fall
<button onclick="changepic('fall')"></button>
</option>
</select>
</body>
</html>
這是JavaScript:
function changepic(season){
switch (season){
case 'winter': document.getElementById('myimage').src='winter.jpg';
break;
case 'spring': document.getElementById('myimage').src='spring.jpg';
break;
case 'summer': document.getElementById('myimage').src='summer.jpg';
break;
case 'fall': document.getElementById('myimage').src='fall.jpg';
break;
}
最好的做法是將<script>
標記放在<head></head>
使用本機Javascript,您可以這樣做:
function changepic(season) { switch (season) { case 'winter': document.getElementById('myimage').src='https://s1.postimg.org/40ndqhnyfv/image.jpg'; break; case 'spring': document.getElementById('myimage').src='https://s1.postimg.org/85iz2llc8b/image.jpg'; break; case 'summer': document.getElementById('myimage').src='https://s1.postimg.org/40ndqhnyfv/image.jpg'; break; case 'fall': document.getElementById('myimage').src='https://s1.postimg.org/85iz2llc8b/image.jpg'; break; } console.log('Current image is : ' + document.getElementById('myimage').src); }
<img id="myimage" src="https://s1.postimg.org/40ndqhnyfv/image.jpg" id="myimage"/> <select name="seasons" onChange="changepic(this.value)"> <option value="winter">Winter</option> <option value="spring">Spring</option> <option value="summer">Summer</option> <option value="fall">Fall</option> </select>
確保圖像與腳本位於同一文件夾中,或者它們位於路徑正確的另一個目錄中
不建議將按鈕放在選擇下拉選項內。 您應該在select
元素上偵聽change()事件,並在那里進行處理。 里面的變化功能,就可以輕松搞定訪問option
加入下拉選擇的value
屬性的所有選項。
因此,帶有change
事件的代碼如下所示-
$(document).ready(function() { $('#seasonsDropdown').change(function() { var seasonValue = document.getElementById('seasonsDropdown').value; switch(seasonValue) { case 'winter': document.getElementById('myimage').src='winter.jpg'; break; case 'spring': document.getElementById('myimage').src='spring.jpg'; break; case 'summer': document.getElementById('myimage').src='summer.jpg'; break; case 'fall': document.getElementById('myimage').src='fall.jpg'; break; } }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script src = "allseasons.js"></script> <img id="myimage" src="winter.jpg" alt="current season." /> <select name="seasons" id="seasonsDropdown"> <option value="winter">Winter</option> <option value="spring">Spring</option> <option value="summer">Summer</option> <option value="fall">Fall</option> </select>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.