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

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

17.09.2013, 12:08. Показов 1772. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru