Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Узнать объявлялась ли функция ранее (https://javascript.ru/forum/jquery/41895-uznat-obyavlyalas-li-funkciya-ranee.html)

1n3gan 03.10.2013 13:44

Узнать объявлялась ли функция ранее
 
Как узнать объявлялся ли такой кусок кода ранее?
$("body").mCustomScrollbar();

Такая проверка
if ($("body").mCustomScrollbar()) {alert (1)}

не прокатывает, т.к она по сути начинает срабатывать и выдает в итоге 1

mi.rafaylik 03.10.2013 14:07

// на событие mCustomScrollbar добавляем счётчик
var srollCheck = 0;
$("body").mCustomScrollbar(function(){
	scrollCheck += 1;
});

// проверяем сколько раз сработал счётчик
if (scrollCheck != 0){
	alert(scrollCheck);
}

Яростный Меч 03.10.2013 14:22

а что такое mCustomScrollbar? это некий плагин? тогда он должен оставить какой-то след после себя. Надо выяснить детали, и вопрос решится сам собой.

1n3gan 03.10.2013 15:00

mi.rafaylik, спасибо за ответ, но ваш счетчик, к сожалению, не сработал

Яростный Меч, mCustomScrollbar - это плагин на jquery, меняющий стандартный скроллбар.
Я высчитываю высоту окна. Если она меньше 600px, то для блока с меню задавать фиксированную высоту и вызывать код скроллбара для него.
Все это поместил в setInterval, чтобы отслеживать изменения в реальном времени:

function windowHeight(){
	if ($(window).height() < 600) {
	$('nav').css({height:'150px'});
	$("nav").mCustomScrollbar(); //Здесь нужна проверка, если этот код уже вызывался, то более не выводить его. Иначе происходит лажа (бесконечное добавление скроллбара, скрин в конце)
}
else {
	$('nav').css({height:'auto'})
}}

setInterval(function(){
	windowHeight();
}, 1000)



Яростный Меч 03.10.2013 15:13

ну вот, совсем другое дело.

проверяй $("body").data("mCS_Init"), должно быть true, если метод вызывался


Часовой пояс GMT +3, время: 10:34.