Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как блокировать выполнение функции фреймворка при определённом условии? (https://javascript.ru/forum/events/63007-kak-blokirovat-vypolnenie-funkcii-frejjmvorka-pri-opredeljonnom-uslovii.html)

borus 12.05.2016 12:43

Как блокировать выполнение функции фреймворка при определённом условии?
 
Здравствуйте!

Скажите можно ли блокировать выполнение некоторой функции mootools фреймворка, только при условии клика по ссылке с определённым классом?

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

Полный стэк вызов функций до исполнения Element.implement.setStyle на локальном сайте выглядит так:
Цитата:

Element.implement.setStyle (mootools-core-u…ressed.js:3774)
Element.implement.hide (mootools-more-u…ressed.js:3139)
jQuery.event.trigger (jquery.min.js:4614)
e.event.trigger (jquery-migrate.min.js:2)
(anonymous function) (jquery.min.js:5289)
jQuery.extend.each (jquery.min.js:384)
jQuery.fn.jQuery.each (jquery.min.js:136)
jQuery.fn.extend.trigger (jquery.min.js:5288)
(anonymous function) (bootstrap.js:839)
jQuery.extend.each (jquery.min.js:384)
jQuery.fn.jQuery.each (jquery.min.js:136)
clearMenus (bootstrap.js:832)
Dropdown.toggle (bootstrap.js:772)
jQuery.event.dispatch (jquery.min.js:4670)
elemData.handle (jquery.min.js:4338)
Спасибо

borus 12.05.2016 14:53

надо было такой скрипт написать
$('header ul.navbar-nav li.dropdown a').on('click', function(){
if($(this).next().css("display")=="block"){
$(this).next().css("display", "none");
}
else{
$(this).parent().parent().find("ul").css("display" , "none");
$(this).next().css("display", "block");
}
return false;
});
причем return false здесь играет решающее значение в решении задачи


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