1

firebug コンソールでこのエラーが発生しましたが、その理由がわかりません。私のコードは次のとおりです。

$(document).ready(function(){
    var header = $('h2#chase');
    var headerOffset = header.offset();
    header.css({
        "position" : "absolute",
        "left" : headerOffset.left+"px",
        "top" : headerOffset.top+"px"
    });

    var headerSize = {width: header.width(), height: header.height()};
    var headerBounds = {top: headerOffset.top, right: headerOffset.left + headerSize.width, bottom: headerOffset.top + headerSize.bottom, left: headerOffset.left};
    var windowBounds = {top: 0, right: $(window).width() - headerSize.width, bottom: $(window).height() - headerSize.height, left: 0};
    var maxLeft = $(window).width() - headerSize.width;
    var maxTop = $(window).height() - headerSize.height;

    var margin = 30;

    $(window).mousemove(function(e){
        headerOffset = header.offset();
        headerBounds = {top: headerOffset.top, right: headerOffset.left + headerSize.width, bottom: headerOffset.top + headerSize.height, left: headerOffset.left};
        var sides = whichSides(e.pageX, e.pageY);
        $.each(sides, function(key, value) {
            header.css({
                value.side : value.newValue+"px"
            })
        });
    });

    function whichSides(mouseX, mouseY) {
        var sides = [];
        var sideOffsets = {top: headerBounds.top - mouseY, right: mouseX - headerBounds.right, bottom: mouseY - headerBounds.bottom, left: headerBounds.left - mouseX};
        var newValues = {top: mouseY + margin, right: mouseX - margin, bottom: mouseY - margin, left: mouseX + margin};
        $.each(sideOffsets, function(key, value) {
            if (value < 30 && value >= 0) {
                sides.push({side: key, newValue: newValues[key]});
            }
        });
        return sides;
    }
});

エラー firebug が返されます:

    missing : after property id (line 24, col 9)
    value.side : value.newValue+"px"

編集:申し訳ありませんが、今朝書いたドラフトからコードを投稿したようです。その後、本当に誤ったコードで更新しました。

4

2 に答える 2

5

このビットでは:

header.css({
    value.side : value.newValue+"px"
})

value.sideの左側にある有効な構成ではありません:

あなたが何をしようとしているのかはわかりませんが、次の行にもっと何かがあるはずです:

header.css({
    side : value.newValue+"px"
})

あなたのコメントを読んだ後、これを行うことができます:

var o = {}

o[value.side] = value.newValue+'px';

header.css(o);
于 2012-07-09T12:58:43.320 に答える
0

Ben が指摘したように、オブジェクト リテラル式の左側 (キー) に変数を含めることはできません。個別に設定する必要があります。

function make_pair(key, value){
    var obj = {};
    obj[key] = value;
    return obj;
}

header.css( make_pair(value.side, value.newValue+"px") )
于 2012-07-09T13:04:04.820 に答える