2011-03-09 92 views
2

我敢肯定,我只是有腦放屁,我失去了一些東西很明顯,但請大家幫忙。爲什麼我的jQuery沒有運行?

我想不通,爲什麼下面的代碼(自定義幻燈片放映早期編碼)沒有在文檔加載時破壞。

$(document).ready(function() { 

    var numSlides = $('#slides .slide').length(); 
    var wrapperWidth = $('#homeBanner').width(); 
    var totalWidth = numSlides * wrapperWidth; 

    // set width of #slides to width of all .slide elements added together 
    $('#slides').css('width', totalWidth+'px'); 

}); // end document.ready() 
+0

你可以把標記嗎?這會更容易建議。 – bhu1st 2011-03-09 15:32:57

+0

jQuery的'width'方法需要的整數。 你並不需要添加'px'。 – SLaks 2011-03-09 15:31:57

+0

你能確認ready函數被觸發嗎?只需在其中放置一個'console.log('yadda')'。 – Bjorn 2011-03-09 15:35:05

回答

8

長度是屬性,而不是方法。

var numSlides = $('#slides .slide').length; // note, no parens 
+0

+1我錯過了。 – SLaks 2011-03-09 15:34:00

+0

+1福氣:) – Sarfraz 2011-03-09 15:34:32

+0

就是這樣。謝謝! – Ben 2011-03-09 15:35:35

1

要獲得網頁,你應該使用jQuery的.size()方法或.length財產上的幻燈片的數量。如果我沒有記錯,你可能不會把長度作爲一種方法。

var numSlides = $('#slides .slide').size();

順便說一句,.width()兼作setter和getter如果您正在使用的像素值的工作,這樣你就可以簡化您的是編輯CSS屬性爲使最後一道防線。

$('#slides').width(totalWidth);

你可能不希望,除非你是積極的,jQuery是唯一的JavaScript庫的項目中使用美元符號($)。您可以用'jQuery'來替換第一個美元符號,然後將美元符號添加到匿名函數參數中。這樣,您仍然可以安全地在document.ready()方法中使用美元符號。例如:

jQuery(document).ready(function($) { /*code here*/ });

希望幫助您解決您的問題,祝你好運,讓我知道,如果你需要幫助了。

乾杯!