@realnin

Две функции oneclick?

Имеется такие две функции
Как сделать эти функции в одной кнопке, чтобы при нажатии выполнялась 1 функция, при повторной нажатии 2 функция, далее опять 1 и так по кругу?

function OpenNewMenu() {

    $("#new_darkness").fadeIn(300);
    $("#new_menu_right").animate( { left:"0px"}, {queue:false, duration:160 }) // mmessage_block
                        .animate( { left:"0px"}, 300);
    $("#menu_open_button").animate( { opacity:"0.4"}, {queue:false, duration:160 }) // mmessage_block
                          .animate( { opacity:"0.4"}, 300);
    //$("body").attr("style");
    //$("body").attr("style", "overflow-y: hidden;");
}

function HideNewMenu() {

    //$("body").attr("style");
    //$("body").attr("style", "overflow-y: auto;");
    $("#new_darkness").fadeOut(300);
    $("#new_menu_right").animate( { left:"-320px"}, {queue:false, duration:160 }) // mmessage_block
                        .animate( { left:"-320px"}, 300);   
    $("#menu_open_button").animate( { opacity:"1"}, {queue:false, duration:160 }) // mmessage_block
                          .animate( { opacity:"1"}, 300);
  • Вопрос задан
  • 231 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
Например так
$('#menu_open_button').on('click', function(){
  var menu = $('#new_menu_right').toggleClass('hidden')
  if (menu.hasClass('hidden')) {
    OpenNewmenu()
  } else {
    Hidenewmenu()
  }
})

Можно хранить состояние не в классе а в data- аттрибуте. Или ориентрироваться на текущие значения прозрачности или что там у вас. Но мне кажется удобнее с классом - таким образом еще и часть изменений внешнего вида можно сделать в css. А иногда и всё это можно сделать через css, и тогда в js останется только toggleClass!

Пример: jsfiddle.net/kdoxe06o
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
$('.mySelector').toggle(function() {
	OpenNewMenu()
}, function() {
	Hidenewmenu()
});
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы