Задать вопрос
@procode
Разработчик

Как сделать декомпозицию (вынести за скобки) этой (небольшой код в сообщении) функции на JS?

Здравствуйте.

Так вышло, что сейчас приходится писать большой скрипт на JS (раньше никогда этим не занимался) и хочется как-то его структурировать. В частности - отделить объявления функций от их вызова. Чтобы объявлять и определять их в одном блоке кода, а вызывать - в другом. Вот, например, эта:

$('#login-form-submit').on('click', function(event){
	
	event.preventDefault();

	$.post({
		url: '/login',
		data: {'_token': $('meta[name="csrf-token"]').attr('content'),'id':$('#id').val()}
	})
	.done(function (data, textStatus, xhr) {		
		console.log( 'From .done() data: '+data + '  textStatus: ' + textStatus + ' xhr: ' + xhr + ' ');
	});	
});


всё работает хорошо. Но когда я пытаюсь сделать из нее именную функцию, мне в консоли браузера при компиляции пишет, что дескать event - не определено. Но, понятное дело, что не определено - я же ее только определил, еще не вызвал. Но код почему-то работать не хочет.

Как это правильно сделать, чтобы такую (и подобные ей функции) превратить в именные и вызывать в разных местах.

В идеале, хочется сделать все это хозяйство более универсальным. Например, чтобы вышеприведенную функцию можно было вызывать с разными селекторами и разными эвентами в разных участках кода.

Если я делаю как в PHP - оно не работает)))

Буду рад любым советам.
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
coderisimo
@coderisimo Куратор тега JavaScript
А где ваш вариант-то ? ))

function superFunction(event){
event.preventDefault();

  $.post({
    url: '/login',
    data: {'_token': $('meta[name="csrf-token"]').attr('content'),'id':$('#id').val()}
  })
  .done(function (data, textStatus, xhr) {		
    console.log( 'From .done() data: '+data + '  textStatus: ' + textStatus + ' xhr: ' + xhr + ' ');
  });
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы