-3

何らかの理由で、コンソールから実行すると機能します。

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%'); )};
--------------------^

これは明らかに私のコードに何か問題があることを意味しますが、それでもそれを理解することはできません。

4

2 に答える 2

5

かっこと中括弧を切り替える必要があります。

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

また、次のcss方法の使用を検討してください。

$('.hidehome').css({
    'display': 'block',
    'height': h + 'px',
    'width': '100%'
});
于 2012-10-15T15:45:26.687 に答える
2

交換

)};

これで :

});

最初に関数定義を閉じてから、への呼び出しを閉じる必要がありますdocument.ready(...)

このような問題があり、それが見つからない場合は、インデントを使用してコードを展開してみてください。問題は明らかです。

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

実際、私は通常、この拡張された対称的な形式を常に使用することを好みます。構造が一見読めないので、対称的にブレースされていないコードは私を傷つけます。

于 2012-10-15T15:45:37.373 に答える