Форум программистов, компьютерный форум, киберфорум
Наши страницы
jQuery
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
barkar
1 / 1 / 2
Регистрация: 11.02.2014
Сообщений: 15
1

Don't make functions within a loop

06.03.2014, 15:41. Просмотров 740. Ответов 2
Метки нет (Все метки)

Есть код:
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
var ul,.... и т.д.;
        for(x = 0; x < len; ++x){
            ul.append(
                $('<li></li>', { data: { 'price': jsonres[x].price } }).append(
                    $('<img>', { src: jsonres[x].url }),
                    $('<p></p>', { text: jsonres[x].name }),
                    $('<p></p>', { text: 'Цвет: '+jsonres[x].color }),
                    $('<p></p>', { text: 'Размер: '+jsonres[x].size }),
                    $('<p></p>', { text: this.digitSpace(jsonres[x].price), data:{'price': jsonres[x].price} }),
                    $('<span></span>', {text:'Удалить', click : function(){
                            var saleShow = $('#saleShow'),
                                prnt = $(this).parent('li'), 
                                a = prnt.index(),
                                itogo = saleShow.find('li:last>span'),
                                result =  itogo.data('itogo') ;
                            $.ajax({
                                type: 'POST',
                                url: '/ajax/ajax.php',
                                dataType: 'json',
                                data: { deleq: a },
                                success: function(delres) {
                                    prnt.stop(false, true).fadeOut(400, function() {
                                        sizeSale.text(delres.length);
                                        var saleShowH = saleShow.outerHeight(true),
                                            saleShowW = saleShow.outerWidth(true);
                                        $('#Lcont').css({'width': saleShowW+'px', 'height': saleShowH+'px'});
                                        result -= prnt.data('price');                                       
                                        itogo.data('itogo', result).text( lightbox.digitSpace(result.toFixed(2)) );
                                        $(this).remove();
                                        _window_.trigger('resize'); 
                                        if(result === 0){ $('#ext').trigger('click');}
                                    });                                 
                                }
                            });
                        }
                    })));
            sum += parseFloat(jsonres[x].price);
        }
Выдает ошибку:в JShint выдает ( Don't make functions within a loop. (W083) );
Как поступить?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2014, 15:41
Ответы с готовыми решениями:

make / mingw32-make - сравнение скорости в многопоточном режиме (-j)
в MinGW + MSYS имеются такие файлы для сборки программ с помощью Makefile: Alex@tycoon-851de03e...

Не могу запустить make: No rule to make target
Любой вызов make возвращает make: *** No rule to make target при запуске ./configure выводит...

Warining For-loop variable 'i' may be undefined after loop
Что не так с кодом? При компиляции программы появляется предупреждение:&quot; Unit1.pas(46):For-loop...

Warining For-loop variable 'i' may be undefined after loop
Как исправить код, что бы программа работала корректно. var Form1: TForm1; implementation...

Почему экзешник make.exe (вернее, его разновидность mingw32-make.exe) принимает неизвестные параметры?
Друзья! У меня есть одна из сборок mingw, а там, как известно файл make.exe отсутствует, а вместо...

2
Padimanskas
Superposition
937 / 604 / 256
Регистрация: 27.10.2013
Сообщений: 2,078
06.03.2014, 16:01 2
очевидно, ошибка "Не пишите функции внутри тела цикла" говорит лишь об одном. В общем, используйте setInterval , а внутри коллбека поставьте условие выхода. Получится так:

Javascript
1
2
3
4
5
6
7
8
var interval = setInterval(function(){
  if(x < len){ 
    x++;
    //  ... ваш мега код...
  } else {
    clearInterval(interval); 
  };
}, 100);
0
barkar
1 / 1 / 2
Регистрация: 11.02.2014
Сообщений: 15
06.03.2014, 16:24  [ТС] 3
Решил так
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
        for(x = 0; x < len; ++x){
            ul.append(
                $('<li></li>', { data: { 'price': jsonres[x].price } }).append(
                    $('<img>', { src: jsonres[x].url }),
                    $('<p></p>', { text: jsonres[x].name }),
                    $('<p></p>', { text: 'Цвет: '+jsonres[x].color }),
                    $('<p></p>', { text: 'Размер: '+jsonres[x].size }),
                    $('<p></p>', { text: this.digitSpace(jsonres[x].price), data:{'price': jsonres[x].price} }),
                    $('<span></span>', {text:'Удалить', click : this.clickDel
                    })));
            sum += parseFloat(jsonres[x].price);
        }
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2014, 16:24

Функция make+, make*
Как описать функцию: make+ , make* ??? Функция этого задания должна конструировать для заданного...

Циклы: For…Next, For Each…Next, Do While…Loop, Do Until…Loop
кому не лень, помогите решить задачу, самому разбираться времени нету, и так работы много.. само...

Don't / Doesn't
This heart don't count on the wicked These hands don't fight at all This mind don't do what it's...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru