为什么这个脚本无法运行?

时间:2012-10-15 15:43:52

标签: javascript jquery

无论出于何种原因,从控制台运行时都有效:

var wh=window.innerHeight;
var h= wh-345;
$('.hidehome').attr('style', 'display:block;height:'+h+'px;width:100%');

但这不是:

$(document).ready(function() {
var wh=window.innerHeight;
var h= wh-345;
$('.hidehome').attr('style', 'display:block;height:'+h+'px;width:100%'); )};

我不知道为什么。控制台告诉我

Syntax error at line 4: expected expression, got ')'
h+'px;width:100%'); )};
--------------------^

这显然意味着我的代码出了问题,但我仍然无法理解。

2 个答案:

答案 0 :(得分:5)

您的括号和大括号需要切换:

$('.hidehome').attr('style', 'display:block;height:'+h+'px;width:100%'); )};
                                                                         ^^
                                                                     Right here

另外,请考虑使用css方法:

$('.hidehome').css({
    'display': 'block',
    'height': h + 'px',
    'width': '100%'
});

答案 1 :(得分:2)

替换

)};

由此:

});

您必须先关闭功能定义,然后再调用document.ready(...)

如果遇到这样的问题并且找不到它,请尝试使用缩进扩展代码,问题很明显:

$(document).ready(
    function() {
        $('.hidehome').attr(
            'style',
            'display:block;height:'+h+'px;width:100%'
        );
    ) // <= doesn't match
}; // <= doesn't match

事实上,我通常更喜欢这种扩展和对称的形式。不对称支撑的代码会伤害我,因为乍看之下结构是不可读的。