Есть скрипт который показывает похожие новости, все отлично работает но есть один момент.
В настройках скрипта указанно число похожих новостей 5 while(loaded < 5){
Но если нету этих 5 новостей а всего лишь 3 или 1 то скрипт начинает жеско тормозить и сайт невозможно прокрутить вниз или в верх, тупо все виснит. Получается он пытается найти еще недостающие новости но их просто напросто нет ...
Код
$(function() { /** * Список похожих новостей */ var $list = $('#rp_list ul'); /** * Количество похожих новостей */ var elems_cnt = $list.children().length;
/** * Показываем первый сет похожих новостей. * 200 is the initial left margin for the list elements */ load(200);
function load(initial){ $list.find('li').hide().andSelf().find('div').css('margin-left',-initial+'px'); var loaded = 0; //Показываем 5 случайных похожих новостей из всего списка похожих новостей для новости //Не повторяем их while(loaded < 5){ var r = Math.floor(Math.random()*elems_cnt); var $elem = $list.find('li:nth-child('+ (r+1) +')'); if($elem.is(':visible')) continue; else $elem.show(); ++loaded; } // анимируем var d = 200; $list.find('li:visible div').each(function(){ $(this).stop().animate({ 'marginLeft':'-50px' },d += 100); }); }
У меня вот с моим вариантом вроде все ок, но проблема возниакет что теперь похожих новостей выводится 10, что не очень хорошо = ( сейчас буду пробывать
Код
var count=(elems_cnt>5)?5:elems_cnt; while(loaded < count){ ... }
Добавлено (04.06.2013, 23:27) --------------------------------------------- Эх всё таки как хорошо если знаеш JS
Спасибо
Код
var count=(elems_cnt>5)?5:elems_cnt; while(loaded < count){ ... }
Добавлено (10.06.2013, 16:06) --------------------------------------------- и странно почему не работает .. у меня на примере все ок, браузер Опера, IE работают норм