1. 程式人生 > >解決js設定css第一次點選不生效問題

解決js設定css第一次點選不生效問題

問題說明:
原生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屬性。