2013-02-21 142 views
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; 
     } 


    }); 

}); 
+0

传递给此行的参数中的“宽度”值是多少? 'var itemWidth = $(“#about_box”).css(width);' – 2013-02-21 16:31:36

+0

为什么这些行不同? var itemWidth = $(“#about_box”)。css(width); console.log($(“#about_box”)。width()); – 2013-02-21 16:34:00

+0

为什么您的文档之前的三行代码准备就绪? – j08691 2013-02-21 16:34:05

回答

2

,您应该使用其中一个选项:

​​

而且使用它的$(document)。就绪处理程序,里面因为在这之前,你可能不会得到任何宽度为DOM尚未呈现。

+0

完美,使用.outerWidth并将其移动到$(document).ready中就行了 - 谢谢! – Rune 2013-02-21 16:54:58

0

你错过了行情在这里

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

应该

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

0

此行有一个语法错误,并抛出异常:var itemWidth = $("#about_box").css(width);

呦ü需要使用:

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

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

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

变化: 变种itemWidth = $( “#about_box”)宽(); 并考虑是否需要外部宽度(填充)。

0

它应该是:在引号

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

即宽度。