С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
1 / 1 / 0
Регистрация: 16.10.2012
Сообщений: 19

Остановить выполнение функции внутри другой функции

17.09.2013, 12:08. Показов 1747. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Такая проблема

Реализовано следующее:
при открытии страницы срабатывает функция и выдаётся поочерёдно элементы массива (текста пословиц) в стиле печатающей машинки.
При нажатии на div(это кнопка) выскакивает поапапчик, но проблема в том, что функция cycle() продолжает работать, хочу как то реализовать, что бы при открытии поапапа текст (элементы массива) останавливался т.е останавливалась функция cycle(), как только поапап закрываешь, текст продолжал выводиться
Можно сделать вместо поапчика alert, тогда функция cycle() останавливается, но в данном случае хочу разукрашенное красивое выскакивающее окошко.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<script language="JavaScript">
    var timer, secs;    
    var Q, d;
    d=document; 
    Q={};
    Q.mass=["As an employer, I wouldn't employ someone with tattoos as I would wonder what customers would think about them. ", 
            "The difference between most mothers and me is that I didn't sit around drinking coffee at baby group for 12 months after the birth of my baby.", 
            "Mammary militia breast feeding en masse in Costa. Puts one off their latte.", 
            "I lied to get someone else's husband because I wanted him. I give myself 8 out of 10 for ruthlessness for that one.",       
            ];
        
    Q.ind = 0;
    Q.txt=Q.mass[Q.ind];
    Q.len=Q.txt.length;
    Q.num=0;
    Q.tim=150;
    secs = 1;
 
    onload=function(){
        init();
    };
 
    function init(){
        Q.elem=d.getElementById("txtTT");
       start();
    };
 
    function start(){
        Q.elem.innerHTML=Q.mass[Q.ind];         
        start_timer();      
        Q.num = 0;
        Q.txt=Q.mass[Q.ind];
        Q.len=Q.txt.length;
        cycle();                    
        Q.ind++;                
        if (Q.ind >= Q.mass.length) Q.ind = 0;
                
    };
    
    function stop(){
        $.alert('You lasted before you slapped some sense into<br>Katie Hopkins');    
        secs = 1;
        
  
 
    };
    function cycle(){       
        if(Q.num!=Q.len){
            Q.num++;
            Q.elem.innerHTML=Q.txt.slice(0, Q.num);
            setTimeout(cycle, Q.tim);
        }
        else
        {
            Q.num = 0;
            Q.ind++;
            if (Q.ind >= Q.mass.length) Q.ind = 0;
 
            Q.txt=Q.mass[Q.ind];
            Q.len=Q.txt.length;
    
            cycle();
        };
     
    };
        
 </script>
Вот JS ещё для украшения окна поапапчика
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
(function($){$.alert=function(text,pt,type){
        var p=$.extend({titleText:'Well done for lasting so long...',divFirst:'jdmDialog',classOverlay:'jdmOverlay',overlay:50,speedAnimate:300,minWidth:600,minHeight:380,textAlign:'left',textButCancel:'Отмена',textButYes:'Ок',funcCancel:function(){$('.'+jqAlert.divFirst).alertHide();},funcYes:function(){$('.'+jqAlert.divFirst).alertHide();}},pt);
        if(type=='confirm'){$('.'+p.divFirst+' .jdmYesButton').html(p.textButYes).show();}
        else{$('.'+p.divFirst+' .jdmYesButton').hide();}
        if(p.ajax){
            var aj=$.extend({url:'',type:'POST',data:''},p.ajax)
            $.ajax({async:false,url:aj.url,data:aj.data,type:aj.type,success:function(d){text+=d},error:function(){text="Ошибка запроса!!!<br />Попробуйте позже."}})
        }
        var d=$(document);
        $('.'+p.classOverlay).css({opacity:p.overlay/100,width:d.width(),height:d.height(),top:0,left:0,'z-index':99}).fadeIn(p.speedAnimate);
        $('.'+p.divFirst).css({width:'auto',height:'auto','z-index':100}).find('.jdmMessage').css({'text-align':p.textAlign}).html(text);
        $('.'+p.divFirst+' .jdmTextTitle').html(p.titleText);
        $('.'+p.divFirst+' .jdmCancelButton').html(p.textButCancel);
        var width=$('.'+p.divFirst).width();
        var height=$('.'+p.divFirst).height();
        if(width<p.minWidth){width=p.minWidth;}
        $('.'+p.divFirst).css({width:width});
        if(height<p.minHeight){height=p.minHeight;}
        $('.'+p.divFirst).css({height:height})  
        var w=$(window);
        $('.'+p.divFirst).css({top:150+w.scrollTop(),left:w.width()/2-width/2,'z-index':1000}).fadeIn(p.speedAnimate);
        window.jqAlert={speedAnimate:p.speedAnimate,classOverlay:p.classOverlay,divFirst:p.divFirst,funcCancel:p.funcCancel,funcYes:p.funcYes};
    }
    $.fn.alertHide=function(){
        $('.'+jqAlert.classOverlay).fadeOut(jqAlert.speedAnimate);
        this.fadeOut(jqAlert.speedAnimate);
        start();
     
    }
    $(document).ready(
        function(){
            $('.jdmCancelButton, .jdmTitleClose').click(function(){jqAlert.funcCancel();})
            $('.jdmYesButton').click(function(){jqAlert.funcYes();})
        })
    $.confirm=function(text,p){
        $.alert(text,p,'confirm')
    }
})(jQuery)// JavaScript Document

HTML5
1
2
   <div id="txtTT"></div>
    <div class="botton" onclick="stop()">Показать окошко</div>
Буду благодарна любым зацепкам
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.09.2013, 12:08
Ответы с готовыми решениями:

Как остановить выполнение ифа, но не функции?
Всем доброго времени суток. Помогите, пожалуйста, решить проблему со слабым у меня JS-ом. Идея скрипта такова: если в диве указано display:...

Вызов функции внутри другой функции
Доброго времени суток! Есть код, которые показывают расстановку шахматных фигур на доске, и если ход был сделан не правильно то фигура...

Выполнение одной функции после другой
Привет. Есть две функции, первая в теле имеет setTimeout. Как можно сделать, чтоб до тех пор пока первая полностью не отработает....

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.09.2013, 12:08
Помогаю со студенческими работами здесь

Вызов одной функции внутри другой
function sold(p,n){ alert('test'); var z=n-1; for( ;z!=-1;z--){ ...

Создание функции внутри другой функции
доброго времени суток. необходимо решить 3 задачи, скрипт с вычислениями поместить в файле .js, а результаты и входные данные (вводимые...

Остановить выполнение функции
Приветствую, ребята. Есть кнопка в форме, подтверждающая отправку. При нажатии, если выполнилось условие, форма не должна отправляться. Но...

Не получается остановить выполнение функции в jQuery
Добрый день! Пытаюсь изменить скрипт по ресайзу дива в зависимости от размеров окна браузера. вот код скрипта: ...

Как остановить цикл в функции, в другой функции
Пытался сделать так, программа зависает и вторая функция не работает def script(event): i = 100 while i &gt; 3 : ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru