Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.02.2014, 00:04
Новичок на форуме
Отправить личное сообщение для skuty Посмотреть профиль Найти все сообщения от skuty
 
Регистрация: 28.01.2014
Сообщений: 9

Помогите оптимизировать код.
Добрый вечер.
Помогите оптимизировать код.. я новичек.. )

$('#work_item1').click(function(){
          $('#add_block').load('/portfolio-list.html #work1 > *',function() {
            $(this).parents('.grey').removeClass('animated_mid fadeInDown');
            $(this).parents('.grey').addClass('animated_mid fadeInDown').css({'display' : 'block'});
            $('.add_block_slider').owlCarousel({   
                autoPlay: 3000, //Set AutoPlay to 3 seconds
                navigation : false,
                pagination: true,
                items : 1     
                });
                $('.item').mouseover(function(){
                $(this).find('.fullinfo').css({'display' : 'block'});
                });
                $('.item').mouseleave(function(){
                $(this).find('.fullinfo').css({'display' : 'none'});
                });
            $('.close_work_item').click(function(){
              $(this).css({'color' : 'red'});
              $(this).parents('#add_block').empty();
            });
          });
        });

      $('#work_item2').click(function(){
          $('#add_block').load('/portfolio-list.html #work2 > *',function() {
            $(this).parents('.grey').removeClass('animated_mid fadeInDown');
            $(this).parents('.grey').addClass('animated_mid fadeInDown').css({'display' : 'block'});
            $('.add_block_slider').owlCarousel({   
                autoPlay: 3000, //Set AutoPlay to 3 seconds
                navigation : false,
                pagination: true,
                items : 1     
                });
                $('.item').mouseover(function(){
                $(this).find('.fullinfo').css({'display' : 'block'});
                });
                $('.item').mouseleave(function(){
                $(this).find('.fullinfo').css({'display' : 'none'});
                });
            $('.close_work_item').click(function(){
              $(this).css({'color' : 'red'});
              $(this).parents('#add_block').empty();
            });
          });
        });

Последний раз редактировалось skuty, 14.02.2014 в 00:06.
Ответить с цитированием
  #2 (permalink)  
Старый 14.02.2014, 00:27
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от skuty
            $(this).parents('.grey').r emoveClass('animated_mid fadeInDown');
            $(this).parents('.grey').a ddClass('animated_mid fadeInDown').css({'display' : 'block'});
Зачем ты удаляешь класс и тут же его добавляешь? В чем смысл?
Сообщение от skuty
.css({'display' : 'block'})
Это сокращается до .show()
Сообщение от skuty
                $('.item').mouseov er(function(){
                $(this).find('.ful linfo').css({'display' : 'block'});
                });
                $('.item').mousele ave(function(){
                $(this).find('.ful linfo').css({'display' : 'none'});
                });
Почему бы не делать это через css (псевдокласс :hover)?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 14.02.2014, 00:30
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от skuty
$('.close_work_item').click(..)
Этот код будет навешивать обработчик при каждом клике, то есть обработчики будут плодиться, ты вкурсе?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 14.02.2014, 00:35
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Тоже касается и owlCarousel - зачем при каждом клике вызывать?

Поменяй html с:
<div id="work_item1">

на:
<div class="work_item" data-work="1">

Тогда js будет таким:
$('.work_item').click(function(){
    var workId = $(this).data('work');
    $('#add_block').load('/portfolio-list.html #work' + workId + ' > *', function() {
        $(this).parents('.grey').show();
    });
});


Решай вышеозвученные вопросы и будет все пучком.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #5 (permalink)  
Старый 14.02.2014, 00:36
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от skuty
'/portfolio-list.html #work1 > *'
А вобще, если по-нормальному делать, то сервак должен отдать только то, что требуется, а не всю страницу целиком. Но как временный костыль, можно и так.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизировать код... Juli@ Элементы интерфейса 9 18.11.2011 10:31
помогите начинающему оптимизироват код bookin jQuery 0 19.10.2011 15:10
Выпадающие списки. Помогите подправить код. cardsmoney Элементы интерфейса 6 18.02.2011 16:20
Код калькулятора на JS. помогите с ошибкой! kirill.psl Общие вопросы Javascript 9 26.08.2010 11:38
Помогите оптимизировать код. pizzZ jQuery 5 17.11.2009 23:52