jQueryは、送信時に複数のクラスをアニメーション化します

StackOverflow https://stackoverflow.com/questions/19855511

  •  29-07-2022
  •  | 
  •  

質問

数値クラスを持つ31個のDIVのグループがあります。送信ボタンをクリックするときに、今日のデートのクラスまたは以前のアニメーションのすべてのdivがそれを作ろうとしています。

<div class="image 1">SAMPLE TEXT</div>
<div class="image 2">SAMPLE TEXT</div>
<div class="image 3">SAMPLE TEXT</div>
<div class="image 4">SAMPLE TEXT</div>
<form>
   <input class="previous" type="submit" value="View Previous" />
</form>

そして、このjQueryの少しですが、それは仕事にはほど遠いので、私は私の人生のために理由を理解することはできません。

$("form").submit(function() 
    {
    var number = $('div.image').attr("class").match(/\d+/),
        d = new Date(),
        day = d.getDate();

    if (number <= day){
        $('div.image').animate({"height":"0px", "width":"150px", "bottom":"75px"}, 500);
    }
    else {
    }
});

私は現在それを持っているので、あなたがそれらの上にホバリングするときに個々のDivがアニメーション化しますが、私はまた、送信ボタンをクリックするときにそれらのグループをアニメーション化することができることを望んでいます。ありがとうございました!

役に立ちましたか?

解決

1つ目:関数フォームの送信からfalseを返す必要があります(ページをリロードしないでください)。それで

d = new Date(),
day = d.getDate();

$(".image").each(function(i,e){
    var number = $(e).attr("class").match(/\d+/);
    if (number <= day)
        $(e).addClass('active'); 
});

$('div.active').animate({"height":"0px", "width":"150px", "bottom":"75px"}, 500);

他のヒント

Animateが実行される前にフォームがすでに送信されるため、追加する必要があります return false アニメーションの後

そのように

if (number <= day){

    $('div.image').animate({"height":"0px", "width":"150px", "bottom":"75px"}, 500);

    return false;
}

else {

}

DIVでカスタム属性を使用してみませんか?このようなことを試してみてください。

HTML:

<div class="image" number="1">SAMPLE TEXT</div>
<div class="image" number="2">SAMPLE TEXT</div>
<div class="image" number="3">SAMPLE TEXT</div>
<div class="image" number="4">SAMPLE TEXT</div>
<form>
   <input class="previous" type="submit" value="View Previous" />
</form>

JavaScript:

$('div.image').each(function()
{
    var number = $(this).attr('number'),
        d = new Date(),
        day = d.getDate();

    if (number <= day){
        $(this).animate({"height":"0px", "width":"150px", "bottom":"75px"}, 500);
    }
});

上記をテストするには、「OnSubmit」または「Onhover」イベントハンドラーに追加してください...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top