1. ホーム
  2. javascript

[解決済み] jQuery - 要素にクラスがある場合は、このようにします。

2022-06-09 08:25:20

質問

ある要素が特定のクラスを持っているかどうかを確認し、位置を変更するようなアクションを実行する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 ($("#about").hasClass("opened")) {
  $("#about").animate({right: "-700px"}, 2000);
}

しかし、これを簡略化して

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

もし #about がない場合は opened クラスを持たない場合は、アニメーションしません。

もし問題がアニメーション自体にあるのであれば、要素の位置についてもっと知る必要があります (絶対か、相対的な親の中の絶対か、親にレイアウトがあるか?)。