Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.12.2017, 08:10
Новичок на форуме
Отправить личное сообщение для Orion55 Посмотреть профиль Найти все сообщения от Orion55
 
Регистрация: 14.05.2011
Сообщений: 5

Исполнить Callback
Всем привет.
Есть функция для скролинга в меню
scrollTo: function (e, i) {
            var o = t(e).offset().top;
t("html, body").animate({scrollTop: o}, this.config.scrollSpeed, this.config.easing, i);
}

У неё 2 параметра.
e – метка меню
И функция callback
i - function () {
    o.config.changeHash && (e.location.hash = r), o.bindInterval(), o.config.end && o.config.end()
}


Всё хорошо, только в e постоянно приходит «#undefined»
И возникает ошибка
"Uncaught TypeError: Cannot read property 'top' of undefined"
Как исправить ошибку или просто отловить #undefined и просто выполнить callback-функцию?
P.S. Код не мой, а достался "по наследству".
Ответить с цитированием
  #2 (permalink)  
Старый 26.12.2017, 08:43
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,213

Сообщение от Orion55
или просто отловить #undefined и просто выполнить callback-функцию?
Как вариант...

scrollTo: function (e, i) {
	if (e==undefined) {
		i();
	} else {
	var o = t(e).offset().top;
	t("html, body").animate({scrollTop: o}, this.config.scrollSpeed, this.config.easing, i);
	};
};
Ответить с цитированием
  #3 (permalink)  
Старый 26.12.2017, 09:38
Новичок на форуме
Отправить личное сообщение для Orion55 Посмотреть профиль Найти все сообщения от Orion55
 
Регистрация: 14.05.2011
Сообщений: 5

Я в принципе так и сделал, только
i();
не работает
Ответить с цитированием
  #4 (permalink)  
Старый 26.12.2017, 10:26
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,213

Сообщение от Orion55
i();

не работает
Бивас, тест! (с)

var test=function(){alert('Ok');};
(function(Fnc){
	alert('Start');
	Fnc();
})(test);

Однако все работает...
Ответить с цитированием
  #5 (permalink)  
Старый 26.12.2017, 10:53
Новичок на форуме
Отправить личное сообщение для Orion55 Посмотреть профиль Найти все сообщения от Orion55
 
Регистрация: 14.05.2011
Сообщений: 5

Хорошо, не корретно выразился, функция
function () {
    o.config.changeHash && (e.location.hash = r), o.bindInterval(), o.config.end && o.config.end()
}

Должна переадресовывать на другую страницу, но что-то не переадресовывает
Ответить с цитированием
  #6 (permalink)  
Старый 26.12.2017, 11:04
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

hash, это якорь на странице, навигация внутри нее, а не ссылка на новую страницу.
Ответить с цитированием
  #7 (permalink)  
Старый 26.12.2017, 13:15
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,213

Сообщение от Orion55
o.config.changeHash && (e.location.hash = r), o.bindInterval(), o.config.end && o.config.end()
Зачем вообще такой ниндзя-стайл?
Ответить с цитированием
  #8 (permalink)  
Старый 26.12.2017, 13:17
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,213

Сообщение от Orion55
Должна переадресовывать на другую страницу, но что-то не переадресовывает
Так если у тебя
e==undefined

В той строке просто будет ошибка.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли так использовать callback функции? Denwf Node.JS 2 14.03.2017 10:20
Работы с callback функциями jenek_34 Общие вопросы Javascript 13 25.03.2015 12:03
Работа с textarea Rompo Events/DOM/Window 14 16.12.2013 17:41
Callback работает не так как я от него жду singaporian Общие вопросы Javascript 3 14.08.2013 00:42
В callback функции теряется контекст. Как это обойти? xintrea AJAX и COMET 4 02.06.2013 11:40