Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Упростить скрипт 
:(
    Опции темы
Predator199
Дата 4.4.2013, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -1
Всего: -4



Помогите пжл, как можно максимально упростить скрипт?
Код

    function on(id,time){
        var f = $('.right .hed_inf span:first'), l = $('.right .hed_inf span:last'), ring = $('.right ul');
        if(time){
           setInterval(function(){
                jaix(3,2+'&pm='+id['on'], this, function(result){
                    f.html(result.p); l.html(result.g);    
                    $('.right .hed_inf font').html(result.v)      
                    ring.html(result.msg);    
                    var items = $('.right ul li'),
                    cb = function(){};
                    items.css({display:'none'});
                    for (var i = items.length;i--;) {
                        (function(item){
                            var callback = cb;
                            cb = function(){
                                $(item).slideDown(400, callback);
                            };
                        })(items[i]);
                    };
                    cb(); cl('#jaix');    
                });    
            }, time)    
        }else{
                jaix(3,2+'&pm='+id['on'], this, function(result){
                    f.html(result.p); l.html(result.g);    
                    $('.right .hed_inf font').html(result.v)      
                    ring.html(result.msg);    
                    var items = $('.right ul li'),
                    cb = function(){};
                    items.css({display:'none'});
                    for (var i = items.length;i--;) {
                        (function(item){
                            var callback = cb;
                            cb = function(){
                                $(item).slideDown(400, callback);
                            };
                        })(items[i]);
                    };
                    cb(); cl('#jaix');    
                });
        }
    }


Просто в одном случаи нужно сетинтервал использовать ,а в другом нет.
PM MAIL   Вверх
Aliance
Дата 4.4.2013, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Код

    function on(id, time) {
        var f = $('.right .hed_inf span:first'),
            l = $('.right .hed_inf span:last'),
            ring = $('.right ul');
        if (time) {
            (function(on) {
                setInterval(function() { ololo(on); }, time);
            })(id.on);
        } else {
            ololo(id.on);
        }
    }

    function ololo(on) {
        jaix(3, 2 + '&pm=' + , this, function (result) {
            f.html(result.p);
            l.html(result.g);
            $('.right .hed_inf font').html(result.v);
            ring.html(result.msg);
            var items = $('.right ul li'),
                cb = function () {};
            items.css({
                display: 'none'
            });
            for (var i = items.length; i--;) {
                (function (item) {
                    var callback = cb;
                    cb = function () {
                        $(item).slideDown(400, callback);
                    };
                })(items[i]);
            }
            cb();
            cl('#jaix');
        });
    }


Вот так лучше не писать:
Код

            items.css({
                display: 'none'
            });

когда есть
Код

items.hide();


Далее, создавать функция внутри цикла может быть опасно в плане производительности. Выясни, реально ли это нужно.
Ну и кроме того, пользуйся tidy и jshint у http://jsfiddle.net/ для корректного и красивого js-кода.

Это сообщение отредактировал(а) Aliance - 4.4.2013, 16:12
PM MAIL WWW ICQ Skype   Вверх
Predator199
Дата 4.4.2013, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -1
Всего: -4



Спс. А подскажите более простой вариант.
Есть строчки "li", в блоке я их заменяю через html.Далее присвайваю none или hide(). Далее  разбираю массив  и по очериде их показываю.
Или можно  код, не использовать slid. А показывать по очереди но использовать 
Код

.animate({opacity:"toggle"}, "slow")
.
PM MAIL   Вверх
Aliance
Дата 4.4.2013, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



Цитата(Predator199 @  4.4.2013,  18:01 Найти цитируемый пост)
Далее присвайваю none

Цитата(Predator199 @  4.4.2013,  18:01 Найти цитируемый пост)
не использовать slid

Ты вообще читаешь что ты пишешь? Как можно понять, что здесь имелось ввиду?

Код

.animate({opacity:"toggle"}, "slow")

фактически тоже самое что и
Код

.fadeOut("slow")

PM MAIL WWW ICQ Skype   Вверх
Predator199
Дата 4.4.2013, 18:54 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 412
Регистрация: 1.2.2012

Репутация: -1
Всего: -4



Цитата(Aliance @  4.4.2013,  18:29 Найти цитируемый пост)
Цитата(Predator199 @  4.4.2013,  18:01 )
не использовать slid


Ну правильно, slid. Я имел  slideDown.
Сделать анимацию. Подгрузили одну строчку li, добавили в блок и так с каждой. Когда добавляем строчку, используем animate ,а не slideDown.

Это сообщение отредактировал(а) Predator199 - 4.4.2013, 18:55
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0737 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.