Включенная функция, Когда Появляется Определенный Класс

Привет я хотел бы, чтобы функция, касающаяся класса "outtime" была включена после того, как div появлялся; таким образом что div скрыл секунду, появившись (в этом случае)

$(function() {
    $("[class*=outtime]").each(function() {
        var retraso = parseInt($(this).attr("class").match(/outtime\d+/g)[0].replace("outtime",""));
        setInterval("$('.outtime" + retraso + "').fadeOut(0)", retraso * 1000);
    });
});


$(function() {
    $("[class*=intime]").each(function() {
        var retraso = parseInt($(this).attr("class").match(/intime\d+/g)[0].replace("intime",""));
        $(this).delay(retraso * 1000).fadeIn(0);
    });
});
.cuadrado{ height:100px;width:100px; background:red;display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cuadrado intime2 outtime1">
</div>
1
задан 01.04.2016, 21:41
1 ответ

Возможное решение состояло бы в том, чтобы добавлять outtime тотчас после intime. Для этого, внутри функции intime:

  • Прочитай задержку, которую нужно применять к intime
  • Прочитай задержку, которую нужно применять к outtime
  • Сцепи outtime, когда ты применишь outtime

Код оказался бы таким:

$(function() {
    $("[class*=outtime]").each(function() {
        var retraso = parseInt($(this).attr("class").match(/outtime\d+/g)[0].replace("outtime",""));
        setInterval("$('.outtime" + retraso + "').fadeOut(0)", retraso * 1000);
    });
});


$(function() {
    $("[class*=intime]").each(function() {
        var retrasointime  = parseInt($(this).attr("class").match(/intime\d+/g)[0].replace("intime",""));
        var retrasoouttime = parseInt($(this).attr("class").match(/outtime\d+/g)[0].replace("outtime",""));
        $(this).delay(retrasointime * 1000).fadeIn(0).delay(retrasoouttime * 1000).fadeOut(0);
    });
});
.cuadrado{ height:100px;width:100px; background:red;display:none;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cuadrado intime2 outtime1">
</div>

Альтернативно, чтобы предотвращать проблемы с outtime скрывая intime в неадекватном моменте (потому что outtime он работает в интервалах), может быть, ты мог бы применять это различным способом:

$("[class*=outtime]").not("[class*=intime]").each(function() {

Таким образом, только он применяется, когда у элемента есть класс outtime, но не становитесь близким другом.

2
ответ дан 24.11.2019, 14:39
  • 1
    Трахать @alvaromontoro alg и # 250; n d и # 237; чтобы приглашать тебя и # 233; в рюмку – Ivan Soler 01.04.2016, 23:47
  • 2
    То, что я пробую, состоит в том, чтобы он скрыл 2 секунды despu и # 233; s, div появляется, прямо сейчас это у меня есть для 1 секунды despu и # 233; s и он не появляется однако, если я помещаю для 3 секунд despu и # 233; s появись в 2 секунды и скрой второго следующего. Поэтому я предположил, что имей, и # 237; в который получать funci и # 243; n, что взрывался, когда появляется элемент, чтобы мочь делать это способом, который я хочу. – Ivan Soler 02.04.2016, 00:02
  • 3
    Я исправил неудачу в c и # 243; я говорю. Чтобы предотвращать проблему, о которой ты упоминаешь в комментарии, я рекомендую тебе делать то, что появляется в и #250; ltimo p и # 225; rrafo ответа (detr и # 225; s примера) – Alvaro Montoro♦ 03.04.2016, 05:34
  • 4
    Hey, much и # 237; пропасти спасибо! – Ivan Soler 03.04.2016, 17:09