2013-04-09 53 views
1

我首先隱藏了所有幻燈片並讀入數組。然後,我使用前進和上一個按鈕瀏覽幻燈片。每個人都有自己的描述,在一個div內。幻燈片顯示本身就能正常工作,而且在我導航時,每個新幻燈片都能完美呈現。但是當我試圖表明的描述文本的高度,就像這樣:。高速運行只有一次

$('.slide-desc').click(function() { 
     $(this).text($('.slide-desc').height()); 
    }); 

將在每張幻燈片除數組中的第一個返回0。 但所有幻燈片實際上加載到該數組因爲我的幻燈片顯示的作品。

這就是我把所有的幻燈片到一個數組:

function getSlides() { 
     slidesArray = $('.slide').toArray(); 
     slidesArrayReversed = $('.slide').toArray().reverse(); 
    }; 

爲什麼它的第一隻工作?

更多細節: 你可以看到在行動腳本http://purplerain.com.br/portfolio.html ,在這裏你可以看到整個腳本代碼:http://purplerain.com.br/js/fullscreen-slideshow.js

這只是長在這裏發表。作爲一個警告......我傾向於使用更多的有限狀態機的思維方式而不是面向對象的思維方式。

感謝您的幫助^^

+1

第一張幻燈片是否可見並且其他隱藏? – 2013-04-09 19:12:55

+0

這可能不一定是相關的,但是在你的點擊函數中,'this'和'$('。slide-desc')'應該指向同一個對象。 – krillgar 2013-04-09 19:15:03

+0

第一張幻燈片也隱藏在頁面加載時。 當第一次加載頁面時,我只有佔位符文本,作爲自動加載幻燈片的藉口。這是您可以在腳本中看到的地方:http://purplerain.com.br/portfolio.html 它不是英文版,但點擊+按鈕即可顯示長描述文本。點擊它....它改變。我只是使用$(this),因爲在一些幻燈片中,我有3段與.slide-desc類標籤相同。 – 2013-04-09 19:41:13

回答

0

有可能是您的js問題,請使用$(this)

$('.slide-desc').click(function() { 
    $(this).text($(this).height()); 
}); 

您也可以嘗試這個插件來獲得任何元素的高度,在任何狀態(隱藏或可見)

https://github.com/dreamerslab/jquery.actual

+0

好:/就像那樣,點擊jsut根本不起作用。我將不得不在稍後檢查插件。事情是......我認爲這不是一個引用或隱藏元素的問題,原因有兩個:a)當代碼被調用時元素是可見的,並且b)它會始終爲第一個數組中的元素,而不是其他所有元素。所以我猜它是關於數組:/我只是不知道如何解決它 – 2013-04-09 19:36:06