无论出于何种原因,从控制台运行时都有效:
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%'); )};
--------------------^
这显然意味着我的代码出了问题,但我仍然无法理解。
答案 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
事实上,我通常更喜欢这种扩展和对称的形式。不对称支撑的代码会伤害我,因为乍看之下结构是不可读的。