jQuery оживляет множественные классы на отправке

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

  •  29-07-2022
  •  | 
  •  

Вопрос

У меня есть группа по 31 дивизион с численным классом. Я пытаюсь сделать это так, чтобы все DOV с классом сегодняшней даты или более раннего оживления при нажатии кнопки отправки.

<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 {
    }
});

В настоящее время у меня есть это, чтобы каждый отдельный диг оживлял, когда вы падаете над ними, но я также хочу анимировать их группу при нажатии кнопки «Отправить». Благодарю вас!

Это было полезно?

Решение

Первый: вы должны вернуть False From Function Form Supper (не перезагружайте страницу). затем

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);

Другие советы

Поскольку форма уже отправляется до того, как начнутся запустить, вы должны добавить 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