我正在研究一个小型的jQuery,而且我已经做了大约90%(我自己可能会添加)。但是现在我打了一堵墙,因为我的代码变得更大了,我似乎无法找到我的最后一个问题。
http://jsfiddle.net/7TRqh/ 在这个jsFiddle上你可以看到我的项目。
我有3个(或更多/更少)不同的div,它们的高度都是变量。按钮“meer”和“minder”使元素向上/向下滑动,这一切都很好(虽然代码可能有点乱)。
但问题是它只抓取第一个元素的可变高度。 192px并将其用于所有元素,尽管它们更高。所以变量
有问题 var currentHeight = $('.book').css('height');
$('.book').css('height','auto');
var animateHeight = $('.book').css('height');
$('.book').css('height', currentHeight);
但我似乎无法找到错误,我希望有人可以帮我解决这个最后一个小问题。
答案 0 :(得分:2)
如果你打电话给$('.book')
,你会调用类book
的所有元素,而你只会收到第一个元素的高度(因为你要求的是一个值:高度。它无法返回数组。
您可能需要做的是为每个不同的.book
元素提供不同的ID,例如book1
,book2
和book3
。您现在可以获得每个book
的高度。
编辑:
$('#myID').click (function () {
// do some expanding
// let's get the height!
$(this).css('height'); // this is the height of the current clicked item.
$(this).parent.css('height'); // this is the height of the parent of the clicked item.
}
您也可以在一组元素上调用此函数,例如$('.book .meerButton').click(function(){});
$(this)
变量非常好,如果您以前从未见过它,请在jQuery文档中阅读有关它的内容。
答案 1 :(得分:1)
$('。book')返回书类的所有元素,高度仅对一个元素起作用。 要解决此问题,您可以使用每个功能:
$('.book').each(function(){
var $this = $(this);
var currentHeight = $this.css('height');
$this.css('height','auto');
...
});