Показать сообщение отдельно
  #1 (permalink)  
Старый 31.03.2016, 00:41
Аватар для Alexander Belov
Профессор
Отправить личное сообщение для Alexander Belov Посмотреть профиль Найти все сообщения от Alexander Belov
 
Регистрация: 12.03.2015
Сообщений: 173

Оптимизация кода
Привет!

Есть функция, привязанная к событию .on( "click" )
Эта функция "перематывает" контент страницы на нужную соответствующую секцию.

$( ".red" ).on( "click", function(){

		$( "html, body" ).animate({
			scrollTop: $( ".red_zone" ).offset().top
		}, 1000);

	});

	$( ".blue" ).on( "click", function(){

		$( "html, body" ).animate({
			scrollTop: $( ".blue_zone" ).offset().top
		}, 1000);

	});


Допустим, таких секций много. Каким образом можно оптимизировать код, учитывая, что функция scrollTop всегда будет "перематывать" страницу на одну и ту же величину (отступ в 1000px), но всегда к разным сецкиям. Т.е. каждой кнопке соответствует своя секция. 10 разных кнопок - 10 разных секций но с одной и той же функцией по сути.

И второй вопрос: к примеру, есть функция doSmth().

Можно ли её прописать как дефолт к событию .on( "click" ) для моих элементов?
Т.е., чтобы не приходилось в конце каждой такой функции вызывать функцию doSmth() "вручную" как показано в коде ниже?

$( ".red" ).on( "click", function(){

		$( "html, body" ).animate({
			scrollTop: $( ".red_zone" ).offset().top
		}, 1000);

                doSmth();

	});

	$( ".blue" ).on( "click", function(){

		$( "html, body" ).animate({
			scrollTop: $( ".blue_zone" ).offset().top
		}, 1000);
      
                 doSmth();


	});
Ответить с цитированием