jQuery-要素にクラスがある場合、これを行います


111

要素に特定のクラスがあるかどうかを確認し、位置の変更などのアクションを実行するjQueryスクリプトが必要です。

これがやり方ですが、うまくいくとは思いません。

$("a.contact").toggle(function() {
    $("#contact").animate({
        right: '0'
    }, 2000);

    if ($("#about").hasClass("opened")) {
        $("#about").animate({
            right: -700 + "px"
        }, 2000);
    }
}, function() {
    $("#contact").animate({
        right: -700 + "px"
    }, 2000);
});

「任意の」要素に特定のクラスがあるかどうかを知りたいとおっしゃっていましたが、ifステートメントのセレクタが「約」のIDを持つ要素のみをターゲットにしているのは意図的なものですか。基本的にあなたが問題を抱えているものを理解しようとしています。また、上記のコードを試して、機能するかどうかを確認しましたか?
エイドリアン

あなたがそれがうまくいくとは思わないという事実のために投票の質問を却下しますか?最初にやってみませんか?!?うまくいかない場合は、具体的に何が見られるか、実際に何が見られたかをお知らせください。
ケン

@ken:確かに彼はそうするべきだったが、彼は控えめな初心者なので、おそらく正しい方向へのやさしいナッジがより適切だっただろうか?ちなみに、@ Florescuは、何かうまくいくかどうか知りたいのに理解できない場合は、jsfiddle.netに問題をモックアップし、質問にリンクします。
treeface '30 / 12/30

@treeface:それナッジです(彼を控えめな初心者と呼ぶ代わりに); 彼が質問を次のように更新した場合...ご存知のように、実際に質問を含めれば、私は反対票を削除します。悪い質問(または質問の欠如)=反対票。これにより、他の人がこのような問題以外の問題に時間を費やす必要がなくなります。
2010

回答:


193

まず、条件に括弧がいくつかありません:

if ($("#about").hasClass("opened")) {
  $("#about").animate({right: "-700px"}, 2000);
}

しかし、これを単純化して以下を行うこともできます。

$('#about.opened').animate(...);

クラス#aboutがない場合opened、アニメーション化されません。

アニメーション自体に問題がある場合は、要素の配置についてさらに知る必要があります(絶対?相対親の内部で絶対?親はレイアウトを持っていますか?)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.