所以標籤從數據庫中填充。一旦標籤被點擊,標籤需要變成紅色和粗體。當點擊另一個標籤時,第一個標籤需要回到原始狀態,並且新標籤應該被激活並且需要大膽和紅色。由於某種原因,changeActiveStates()僅適用於前兩個標籤,即當第一個標籤被點擊時它變成紅色,並且當第二個標籤被點擊時,第一個標籤變成黑色,第二個標籤變成紅色。當第三個標籤被點擊時,第二個標籤保持紅色,第三個標籤變成紅色。我該如何解決??如何在點擊時加粗標籤?
下面是代碼:
<html>
<span>
<input type="hidden" name="LiabFilter" id= "idLib<%=liabkey %>" value="<%=liabkey %>" />
<div>
<label for="idLib<%=liabkey%>" id="liablabel" style="cursor: hand; padding-left: 25px; font-weight: normal"
onClick ="clearLiabFilter();
document.getElementById('idLib<%=liabkey%>').checked = true;
changeActiveStates(this);">
<%=liab.getName() %>
</br>
</label>
</div>
</span>
<style type="text/css">
.activate { font-weight: bold; color:#e40000;}
.visited{ font-weight: normal; color: #000000;}
</style>
<script>
function byId(id) {
return document.getElementById ? document.getElementById(id) : document.all[id];
}
var prevLink = "";
function changeActiveStates(ele) {
if (prevLink) byId(prevLink).className = '';
ele.className = 'activate';
prevLink = ele.id;
}
</script>
</html>
是的,我的準確地指出。看起來你在幾分之一秒內擊敗了我! :) – WhyNotHugo 2012-07-09 20:15:45
所以,我只是添加jQuery的腳本標記與其他功能,或者我應該創建一個新的.js文件。抱歉,我從來沒有使用過jQuery。 – 2012-07-09 21:02:24
增加了一些更多的答案。我希望它有幫助。 JQuery是非常有用的,並且使得事情變得非常簡單。你一定要檢查一下 – Turnip 2012-07-09 21:25:55