解決js設定css第一次點選不生效問題
阿新 • • 發佈:2019-02-02
問題說明:
原生JS設定CSS隱藏屬性,但開發者模式(清除CSS快取)下每次重新整理頁面,第一次點選都不會生效。
解決方法:
增加獲取當前CSS屬性的函式。
function getStyle(dom, attr) {
if (dom.currentStyle) {
return dom.currentStyle[attr]
} else {
return getComputedStyle(dom)[attr]
}
}
完整程式碼如下:
$btn = "<button id='commentbtn' onclick ='disCom()'>".$txt."</button>";
$func = "<script>
function getStyle(dom, attr) {
if (dom.currentStyle) {
return dom.currentStyle[attr]
} else {
return getComputedStyle(dom)[attr]
}
}
var btn = document.getElementById('commentdiv');
function disCom() {
(getStyle(btn, 'display' )=='block') ? (btn.style.display = 'none') : (btn.style.display = 'block');
}</script>";
至此,問題解決,原理據hhxx講,是因為JS獲取不到通過CSS定義的CSS屬性。