2013-02-21 168 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"); 

即寬度。