jQuery выполняет код каждый раз, когда элемент имеет класс - PullRequest
0 голосов
/ 09 января 2012

Я пытаюсь выполнить кусок кода каждый раз, когда определенный элемент имеет определенный класс в jQuery.

Проблема, с которой я сталкиваюсь, состоит в том, что код выполняется только один раз, а затем кажется неактивным.Я использую оператор if, но я тоже пытался.Когда я пытался, пока ничего не получалось, так что это была плохая идеяЕсть ли решение?Вот код:

if($(".slide:first").hasClass("active-slide")) {
    $(".prev").hide();
    $(".next").click (function () {
        $(".prev").show();
    });
}

Ответы [ 2 ]

2 голосов
/ 09 января 2012

JQuery-запросы выполняются только один раз. Вы можете выполнить его в интервале:

var checkPage = function(){
    if($(".slide:first").hasClass("active-slide")) {
        $(".prev").hide();
        $(".next").click (function () {
            $(".prev").show();
        });
    }
}

var intrvl = setInterval( checkPage, 300 );

Это может сработать, но на больших страницах это может стать очень медленным.

Я бы предпочел прикрепить функцию checkPage() к событию смены слайдов.

1 голос
/ 09 января 2012

Оберните его в each(), чтобы он выполнялся каждый раз, когда появляется первый слайдер:

$(".slide:first-child").each(function(){
   // your function goes here    
});

РЕДАКТИРОВАТЬ: :first предназначается только для первого экземпляра на странице, поэтому он будетВ любом случае, только один раз.Вы, наверное, ищете :first-child.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...