2

私は小さな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);

しかし、私は本当に間違いを見つけることができないようです。ここの誰かがこの最後の小さな問題で私を助けてくれることを願っています。

4

2 に答える 2

2

$('.book')すべての要素を class で呼び出すと、book最初の要素の高さのみが返されます (高さという単一の値を求めているためです。配列を返すことはできません。

おそらく行う必要があるのは、 、 、 のように、それぞれの異なる.book要素に異なる IDを与えることです。これで、さまざまな のそれぞれの高さを取得できます。book1book2book3book


編集:

$('#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 ドキュメントで何かを読んでください。

于 2012-05-24T08:47:31.317 に答える
1

$('.book') は book クラスを含むすべての要素を返し、高さは 1 つの要素のみを操作します。これを修正するには、各関数を使用できます。

$('.book').each(function(){
  var $this = $(this);
  var currentHeight = $this.css('height');
  $this.css('height','auto');
  ...
});
于 2012-05-24T09:02:02.757 に答える