我使用html,css & js寫一個簡短的調查。我想問一個問題,然後讓用戶以1-5的比例進行評分。不要更新懸停事件的多個div
理想情況下,我希望秤的響應速度很快,所以如果將鼠標懸停在1以上,它會變成黃色。如果將鼠標懸停在2上,它會將1和2都變成黃色。如果將鼠標懸停在3以上,則前3個框會變成黃色。你明白了。
當調查中只有一個問題時,這很有效,但問題的數量可能未知(且冗長)。
我希望我可以使用相同的JS函數和css類,但是當我將鼠標懸停在頁面上的問題上時,頁面上的所有問題都會更新爲黃色。這樣做的最好方法是什麼,以便每個答案只能單獨更新,而不是整個頁面?
繼承人當前HTML代碼:
<table>
<thead>
<tr>
<td>Overall</td>
<td></td>
<td></td>
</tr>
</thead>
<tbody>
<tr>
<td>Question 1</td>
<td width="300px">
<div class="scale-text">No Rating</div>
<div class="scale-1"></div>
<div class="scale-2"></div>
<div class="scale-3"></div>
<div class="scale-4"></div>
<div class="scale-5"></div>
</td>
<td>Comment</td>
</tr>
<tr>
<td>Question 2</td>
<td width="300px">
<div class="scale-text"></div>
<div class="scale-1"></div>
<div class="scale-2"></div>
<div class="scale-3"></div>
<div class="scale-4"></div>
<div class="scale-5"></div>
</td>
<td>Comment</td>
</tr>
</tbody>
<table>
和JS:
<script>
$(function() {
$('.scale-1').hover(function() {
$('.scale-1').css('background-color', 'yellow');
$('.scale-text').html("Strongly Disagree");
}, function() {
// on mouseout, reset the background colour
$('.scale-1').css('background-color', '');
$('.scale-text').html("No Rating");
});
});
$(function() {
$('.scale-2').hover(function() {
$('.scale-1').css('background-color', 'yellow');
$('.scale-2').css('background-color', 'yellow');
$('.scale-text').html("Disagree");
}, function() {
// on mouseout, reset the background colour
$('.scale-1').css('background-color', '');
$('.scale-2').css('background-color', '');
$('.scale-text').html("No Rating");
});
});
$(function() {
$('.scale-3').hover(function() {
$('.scale-1').css('background-color', 'yellow');
$('.scale-2').css('background-color', 'yellow');
$('.scale-3').css('background-color', 'yellow');
$('.scale-text').html("Neutral");
}, function() {
// on mouseout, reset the background colour
$('.scale-1').css('background-color', '');
$('.scale-2').css('background-color', '');
$('.scale-3').css('background-color', '');
$('.scale-text').html("No Rating");
});
});
$(function() {
$('.scale-4').hover(function() {
$('.scale-1').css('background-color', 'yellow');
$('.scale-2').css('background-color', 'yellow');
$('.scale-3').css('background-color', 'yellow');
$('.scale-4').css('background-color', 'yellow');
$('.scale-text').html("Agree");
}, function() {
// on mouseout, reset the background colour
$('.scale-1').css('background-color', '');
$('.scale-2').css('background-color', '');
$('.scale-3').css('background-color', '');
$('.scale-4').css('background-color', '');
$('.scale-text').html("No Rating");
});
});
$(function() {
$('.scale-5').hover(function() {
$('.scale-1').css('background-color', 'yellow');
$('.scale-2').css('background-color', 'yellow');
$('.scale-3').css('background-color', 'yellow');
$('.scale-4').css('background-color', 'yellow');
$('.scale-5').css('background-color', 'yellow');
$('.scale-text').html("Strongly Agree");
}, function() {
// on mouseout, reset the background colour
$('.scale-1').css('background-color', '');
$('.scale-2').css('background-color', '');
$('.scale-3').css('background-color', '');
$('.scale-4').css('background-color', '');
$('.scale-5').css('background-color', '');
$('.scale-text').html("No Rating");
});
});
顯然,你並沒有考慮改變相對塊內的顏色。相反,你正在改變背景顏色到所有具有相同類名的元素。 –