2013-04-09 42 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