我有一個網站在頁眉上方的頂欄中有一個擴展的控件區域。您可以在此處看到:http://khill.mhostiuckproductions.com/siteLSSBoilerPlate/使用擴展div切換按鈕的Javascript類
單擊箭頭展開此區域時,可以看到它切換到面向相反方向的不同按鈕。當再次點擊該區域以使該區域恢復時,箭頭不會切換回原來的位置。
我在這裏嘗試了許多與類切換主題有關的事情,但是我無法得到任何工作。 Change an element's class with JavaScript
如何最好地將此按鈕上的類從展開箭頭切換到摺疊箭頭以及我已經在下面使用的代碼?就此而言,我應該簡單地刪除下面的代碼並使用更簡單/更好的方法嗎?
CSS:
.collapse-arrow {
display: inline-block;
width: 24px;
height: 24px;
background: url('../../../images/collapse-arrow.png');
}
.expand-arrow {
display: inline-block;
width: 24px;
height: 24px;
margin-top: 5px;
background: url('../../../images/expand-arrow.png');
}
的Javascript
<script language="javascript"><!-- THIS IS THE SLDING TOP BAR -->
(function() {
var open = false;
toggle = function() {
var ele = document.getElementById("toggleText");
var text = document.getElementById("displayText");
ele.style.height = (open ? 0 : ele.scrollHeight)+"px";
document.getElementById("displayText").className =
document.getElementById("displayText").className.replace
(/(?:^|\s)expand-arrow(?!\S)/g , '');
open = !open;
}
})();
</script>
HTML:
按鈕:
<a class="expand-arrow" id="displayText" href="javascript:toggle();"></a>
當你的頁面加載'#displayText'有兩類:'擴大-arrow'和'崩塌arrow'。您的切換功能只能刪除第一類,但無法將其添加回來。查看你所鏈接的答案的「檢查一個班級是否已經被應用」部分。並根據需要使用它來添加所需的類。 – hsan 2013-02-18 15:47:23