条件重定向问题

时间:2013-11-06 02:46:22

标签: javascript

我有两个条件语句,一个有效,一个没有。我花了3天时间试图找出原因。希望这里有人能够解决这个问题。

工作语句 - 这个只是在display:none和:block

之间切换一个div
case 'addressSearch':
        var div = document.getElementById('addsearch');
           if (div.style.display !== 'block') {
                div.style.display = 'block';
            }
            else {
                div.style.display = 'none';
            }

这是坏的 - 它应该根据div的显示属性指向不同的页面。它重定向,但不取决于显示的值。我不确定为什么,但div.style.display总是一个空字符串。

function loginCheck(){
var div = document.getElementById('loin');
    if (div.style.display !== 'block') {
        window.location = '/login.shtml';
        }
    else {
        window.location = '/calendar.shtml';
    }
};

css是#loin {display:block;}而html是

    <div class="button" id="tmcb"  onclick="loginCheck()">To My Calendar</div>

编辑:新的if语句

        if (getComputedStyle(div, null).display !== 'block') { //something };

这有效

1 个答案:

答案 0 :(得分:0)

style属性返回分配给style HTML属性的内容,而不是返回分配给HTML元素的CSS类的计算样式。如果您使用jQuery,则可以使用$('#loin').css('display')

如果您不想使用jQuery并且您定位IE9 +,则可以使用window.getComputedStyle。我不知道IE8及其下的解决方案,但谷歌应该帮助你解决这个问题。

你也可以简单地使用style="display: block"代替CSS类,避免所有这种计算风格的麻烦。