我隱藏或顯示字段下面的代碼:使用Dojo 1.9如何檢查元素是否可見?
顯示元素:
style.set(dojo.byId('fTypeId'), 'display', 'block');
隱藏元素:
style.set(dojo.byId('fTypeId'), 'display', 'none');
如何測試,如果這個元素呈現?
我隱藏或顯示字段下面的代碼:使用Dojo 1.9如何檢查元素是否可見?
顯示元素:
style.set(dojo.byId('fTypeId'), 'display', 'block');
隱藏元素:
style.set(dojo.byId('fTypeId'), 'display', 'none');
如何測試,如果這個元素呈現?
嘗試:
require(["dojo/dom-style"], function(domStyle){
var isVisible = (domStyle.get("yourNodeId", "display") !== "none");
});
好又簡單!我喜歡它...... –
這個答案簡直是錯誤的** **檢查給定元素是否顯示==無太天真。有數百種情況下,元素可能是不可見的,父母不可見的最簡單的情況。這個答案被接受誤導遊客。 –
我同意。對不起,誤導性的答案。遊客請檢查最上面的一個。 – Philippe
與檢查style['display']
的方法的問題是,你的元素仍然可以被隱藏,即使它的「顯示」屬性設置爲「無」。例如,「可見度」可能是「隱藏的」,「高度」可能是「0」,元素可能會被其他元素遮擋等等。根據我的經驗,檢查元素的高度而不是顯示更加可靠。例如:
var isVisible = document.getElementById("myElem").offsetHeight != 0;
這個測試有額外的好處,它不依賴於任何框架...
這確實是一個更好的解決方案,但是您也應該檢查'offsetWidth',因爲如果一個元素沒有寬度,它也不可見。這與jQuery爲':visible'和':hidden'選擇器所做的一樣(https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js)。但請注意,與您在答案中提到的不同,當「visibilty:hidden」或「opacity:0」仍然可見時,它們仍然可見,因爲它們仍然保持其寬度/高度! – g00glen00b
你接受的答案是技術上** **錯誤。看到伊戈爾的答案。我低估了這個問題,因爲提出錯誤的答案會誤導人們。 –