2

英語は私の母国語ではないので、最初に申し訳ありません。学校のプロジェクト用にタイムラインのウェブサイトを構築しています。

私はこれらのボールを持っています。クリックすると、それらの背後にある div が開き、他のすべてが閉じられ、いくつかのクラスが設定されるので、それらが開いていることがわかります。

すでに開いているものとは別のものを開こうとすると、うまく機能します。

1つを開いてもう一度クリックして閉じると、ここで問題が発生します。コードは次のとおりです。

if($('.balkln, .balgrt').hasClass("open")){
      console.log("Clicked and there is a open class active!");

クラスinfoopenを持っていても、次に設定されているアニメーションを起動することはありません

$(".infoopen").stop().animate({

ウェブサイトへのリンク: http://kloek.skippy.nu

誰かがアイデアを得ましたか?

ありがとう

4

1 に答える 1

0

問題は、またはその中にクラスを持つ要素がある.balklnかどうかを確認しようとしていることです。あなたのコードは、そのクラス自体を持っているかどうかをチェックします。.balgrtopen.balkln.balgrt

コードを次のように変更してみてください。

if($('.balkln, .balgrt').find(".infoopen")){ // this will look for open divs within balls
  console.log("Clicked and there is a open class active!");

その状態であるべきでtrueあり、それはあなたが望むものです。さらに、開いているボールを探し、次に閉じる情報 divを探すという点で、コードに構造的なエラーがあるように感じます。必要なのは、開いているボールを探して、そこに含まれる情報 divを閉じることです。コードは今のところ機能しますが、複数のボールを同時に開くことを許可すると、1 つを閉じるとすべてのボールが閉じられるため、問題が発生します。

于 2012-11-03T14:43:03.037 に答える