Как проверить наличие нескольких классов и применить эффект ко всем из них в jquery? - PullRequest
0 голосов
/ 20 октября 2010

Вот мой код внутри (документа) .ready

$('.checkfirst').click(function() {
    if ($(".textbox").is('.required')) {
        var x = $(this).offset().top - 200;
        $(this).focus();
        $('html,body').animate({
             scrollTop: x
        }, 500);
        divHint = '<div class="formHint">This is required!</div>';
        $(this).before(divHint);
        $(this).prev(".formHint").animate({
            marginLeft: "380px",
            opacity: "1"
        }, 200);

    } else {
        $(".agreement").fadeIn();
    }
});

.checkfirst - это кнопка отправки.

Существуют различные поля с классом .textbox, инекоторые из них также имеют класс .required.Если пользователь редактирует поле ввода, .required удаляется.

Поэтому, когда пользователь нажимает .checkfirst, я хочу, чтобы он нашел необходимые поля, поставил и анимировал divHint рядом со всеми из них., затем перейдите к первому необходимому полю ввода (также выделив его).

Сейчас я знаю, что мой код просто применяет divHint к кнопке отправки (this).Мне нужно как-то настроить цикл, и я не уверен, как это сделать.

1 Ответ

1 голос
/ 20 октября 2010

Функция, которую вы ищете, является функцией each () jQuery. Если вы используете его в сочетании с некоторой переменной флага проверки, это должно быть довольно просто. Например, вы можете поместить что-то вроде этого в обработчик проверки checkfirst:

var validated = true;
$(".textbox").each(function(){
    if ($(this).hasClass("required")){
        validated = false;
        //do all the animations here
    }
});
if (validated)
    $(".agreement").fadeIn();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...