我有一個div(divChatContainer),它有一個頂部div(divChatContainerTop),裏面有一個「span」元素。我想要在單擊「span」元素時將容器div的大小調整爲「divChatContainerTop」高度(即:最小化聊天窗口,以便只顯示「divChatContainerTop」)。將div高度更改爲div div的高度點擊使用JS
HTML代碼:
<div id="divChatContainer" runat="server" style="overflow-y: scroll; box-sizing: border-box; word-wrap: break-word; width: 20%; max-height: 35%; position: fixed; right: 0px; bottom: 0%; box-sizing: border-box; background-color: #EBECEF; border: solid #3A5896; border-width: 1px 0px 0px 1px; border-radius: 1px;">
<div id="divChatContainerTop" style="text-align: right; box-sizing: border-box; width: 100%; padding: 3px;">
<span style="float: left; box-sizing:border-box;width:50%;overflow:hidden;">Left</span><span id="spanChatMinimize" style="float: right">X</span>
</div>
</div>
外部.js文件:
document.getElementById('spanChatMinimize').addEventListener('click', function() {
document.getElementById('divChatContainer').style.height = document.getElementById('divChatContainerTop').style.height + 'px';
});
在調試我注意到它沒有進入功能。也許添加eventListener的語法是錯誤的,或者「span」元素有其他名稱(在MasterPage上有時它們有「ctl00_elementName」),但我想不是這種情況,因爲容器元素靜態地位於ContenPlaceHolder外部的HTML中。
編輯: 下面的代碼工作,以儘量減少
document.getElementById('spanChatMinimize').addEventListener('click', function() {
document.getElementById('divChatContainer').style.height = 10px;
});
但下面的代碼不做什麼:
document.getElementById('spanChatMinimize').addEventListener('click', function() {
document.getElementById('divChatContainer').style.height = document.getElementById('spanChatMinimize').style.height + 'px';
});
所以我假設我沒有能夠得到「divChatContainerTop」或「跨度」高度。我們不能獲得屏幕高度而不是高度屬性?
divChatContainer裏面有更多的東西,它的高度並不僅僅來自「span」元素。事情是,如果我設置「divChatContainer」「style.height」爲「10px」例如,仍然不起作用。點擊事件沒有關聯到「span」點擊。在調試中,它不會進入功能(中間)行。我檢查了所有元素,並創建了正確的名稱(做了一個提醒所有元素的ID的小函數)。 –
@MrBilly addEventListener的作品。如果您點擊跨度,Console.log將起作用。 – iplus26
@MrBilly看到jsfiddle的例子。當您點擊跨度時Console.log起作用 – iplus26