0

ボタンがクリックされたときに画面に移動し、もう一度クリックしたときに画面から戻る必要がある要素があります。

問題は、ボックスの特定の幅は常に同じになるとは限らないため、書きたくないということです。このコードでうまくいくと思いましたが、「変数が見つかりません:幅」というReferenceErrorが発生します。それを改善する方法はありますか?

var itemWidth = $("#about_box").css(width);

console.log($("#about_box").width());

var itemOut = false;

$(document).ready(function() {

    $("#about").click(function(){

        var value1 = 30;
        var value2 = -itemWidth;

        console.log(itemOut);

        if (itemOut == false) {
            $("#about_box").stop();
            $("#about_box").animate({left: value1}, 350);
            itemOut= true;
        } else {
            $("#about_box").stop()
            $("#about_box").animate({left: value2}, 150);
            itemOut = false;
        }


    });

});
4

5 に答える 5

2

次のいずれかのオプションを使用する必要があります。

$("#about_box").width() //element only width
$("#about_box").innerWidth() //element + padding width
$("#about_box").outerWidth() //element + padding + border width

また、$(document).readyハンドラー内で使用します。これまでは、DOMがまだレンダリングされていないため、幅が取得されない可能性があります。

于 2013-02-21T16:36:34.073 に答える
0

あなたはここで引用を逃しました

var itemWidth = $("#about_box").css(width);

する必要があります

var itemWidth = $("#about_box").css("width");

于 2013-02-21T16:34:01.033 に答える
0

この行には構文エラーがあり、例外をスローします:var itemWidth = $("#about_box").css(width);

あなたは使用する必要があります:

var itemWidth = $("#about_box").css('width');

また

var itemWidth = $("#about_box").width();

于 2013-02-21T16:34:34.673 に答える
0
var itemWidth = $("#about_box").css(width);

次のように変更します。varitemWidth=$( "#about_box")。width(); 外側の幅(パディング)が必要かどうかを検討してください。

于 2013-02-21T16:34:35.877 に答える
0

そのはず:

var itemWidth = $("#about_box").css("width");

つまり、引用符で囲んだ幅。

于 2013-02-21T16:36:37.450 に答える