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);

更改为: var itemWidth = $("#about_box").width(); 并考虑是否需要外部宽度(填充)。

于 2013-02-21T16:34:35.877 回答
0

它应该是:

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

即引号中的宽度。

于 2013-02-21T16:36:37.450 回答