Помогите завис (хранение значения)
$(".toggle1").click(function(){ $flag = 'false'; if ($('#header').hasClass('navbar-fixed-top')) { // эта проверка уже беспонтовая после removeClass.... $flag = 'true'; } if ($(".toggle1").hasClass("active")) { if (надо вернуть класс обратно если до удаления класс существовал) { // ВОТ С ЭТИМ УСЛОВИЕМ помощь нужна $('header').addClass('navbar-fixed-top'); } } else { if ($flag == 'true') { $('header').removeClass('navbar-fixed-top'); } } }); есть такое событие клик(оно открывает модальное окно), до клика я проверяю существования класса(если его нет - то все просто), а если он есть на момент открытого модального окна, мне надо его удалить $('header').removeClass('navbar-fixed-top'); тоже вроде-бы все понятно все ок, при клике на закрытие модального окна мне надо знать существовал ли этот класс до .removeClass('navbar-fixed-top') , ведь естественно я его удалил и его больше нету, как лучше всего зафиксировать это? |
вы же сохраняйте в переменную $flag?? или не то?
|
Цитата:
$(".toggle1").click(function(){ $flag = 'false'; if ($('#header').hasClass('navbar-fixed-top')) { // при закрытие он будет false все время так как был removeClass. $flag = 'true'; } if ($(".toggle1").hasClass("active")) { $(".toggle1").removeClass('active'); // ЗАКРЫВАЕМ ОКНО, ТАК КАК ОНО БЫЛО ОТКРЫТО, и ТУТ надо узнать был ли класс удалён. if (надо вернуть класс обратно если до удаления класс существовал) { $('header').addClass('navbar-fixed-top'); } } else { // ОТКРЫВАЕТСЯ ОКНО, класс был удалили его. 1 ШАГ $(".toggle1").addClass('active'); if ($flag == 'true') { $('header').removeClass('navbar-fixed-top'); } } }); |
ну так сделайте еще одну переменную типа saveflag и записывайте значение в конце функции. только сделайте либо глобальную переменную, чтобы она не удалялась после выполнения функции. или запишите в объект (просто я не знаю вашего алгоритма полностью)
|
я побывал типа что-то, но проблемы с пространством имен у меня;> Такой способ мне подойдет только как сделать чтоб flag2 был видимым? ака глобальным? вроде-бы var аббревиатура дает статус переменной как global?
if ($(".toggle1").hasClass("active")) { if (window.flag2 == 'true') { // ТУТ НАМ НЕИЗВЕСТНО ЧТО ТАКОЕ FLAG2 $('header').addClass('navbar-fixed-top'); } } else { if ($flag == 'true') { $('header').removeClass('navbar-fixed-top'); var flag2 = 'true'; // ДЕЛАЮ 2 ПЕРЕМЕННУЮ } |
можно написать window.flag2 = tra-lala; и использовать как window.flag2 или просто flag2 - это равносильно. при условии что внутри функции не было объявлено переменной с этим же именем..
var просто объявляет переменную, если она была объявлена внутри функции, то она локальная. если она была объявлена вне функции, то глобальная. и тогда для использования внутри функции нет необходимости ее объявлять |
блин работает! спасибо! :)) +++
|
Как вариант - элементу у которого удаляешь класс, присваивать какой ниб аттрибут типо data-removed, element.data('removed',someclass) в каком угодно формате хоть строкой хоть массивом. И при закрытии ворачивать обратно все классы указанные в data-removed
|
Часовой пояс GMT +3, время: 05:47. |