переменные javascript не устанавливаются - проверено через firebug - PullRequest
2 голосов
/ 01 ноября 2010

Я новичок в stackoverflow!

У меня проблемы с куском кода для сайта моей компании, использующего jquery.Я пытаюсь отследить нажатия на две кнопки и установить переменную / и, которые затем могут быть использованы для определения направления действий.В основном это скользящий выпадающий список, который анимирует один путь, если переменная установлена ​​в true, и другой, если он установлен в false.Я инициализировал переменные как ложные для начала, а затем в ходе щелчка они должны быть установлены в истинное или ложное в зависимости от ситуации:

var boollogin = false;
var boolregister = false;

$(document).ready(function(){
   $('#slidedownlogin').hide();
   $('#details_add_area').hide();
   $('#emailconfirmation').hide();
   $('#register').toggle(function(){
      if(boollogin == false){
         $('#login_area').hide();
         $('#register_area').show();
         $('#details_add_area').hide();
         $('#slidedownlogin').animate({'height':'235px'},1500, 'easeOutExpo');
      }else{
         $('#slidedownlogin').animate({'height':'0px'},1500, 'easeOutExpo',function(){
            $('#login_area').hide();
            $('#details_add_area').hide();
            $('#register_area').show();
            $('#slidedownlogin').animate({'height':'235px'},1500, 'easeOutExpo');
          });
      }
      boolregister = true;
   } , function(){
     $('#slidedownlogin').animate({'height':'0px'},1500, 'easeOutExpo', function(){
            $('#slidedownlogin').children().hide();
       });
       boolregister = false;
       boollogin = false;
    });

    $('#login').toggle(function(){
       if(boolregister == false){
          $('#register_area').hide();
          $('#details_add_area').hide();
          $('#login_area').show();
          $('#slidedownlogin').animate({'height':'220px'},1500, 'easeOutExpo');
       }else{  
          $('#slidedownlogin').animate({'height':'0px'},1500, 'easeOutExpo',function(){
             $('#register_area').hide();
             $('#details_add_area').hide();
             $('#login_area').show();
             $('#slidedownlogin').animate({'height':'220px'},1500, 'easeOutExpo');
           });
       }
       boollogin = true;
    } , function(){
         $('#slidedownlogin').animate({'height':'0px'},1500, 'easeOutExpo', function(){
            $('#slidedownlogin').children().hide();
         });
         boollogin = false;
         boolregister= false;
    });
});

Страница, над которой я работаю,на http://www.premiersoftware.co.uk/index94.php. Полный код находится в php-файле на данный момент, так что вы можете посмотреть его там же.Вы сможете получить представление о том, что я пытаюсь сделать, нажав две ссылки (Зарегистрироваться и Войти) в правом верхнем углу страницы. Они должны сбрасывать переменные boollogin или boolregister, но проверять эти две переменныев firebug показывает, что они не сбрасываются и не меняются.В результате страница изначально работает, как и ожидалось, но через некоторое время и несколько кликов она становится действительно странной.Проверка формы и прочее еще не было сделано, так как я пытаюсь отсортировать анимацию в первую очередь.

Я надеялся, что кто-то здесь сможет пролить свет на то, почему переменные не сбрасываютсяи предложить, как я мог бы исправить код.Если есть другой способ создать такую ​​же функциональность, я также открыт для предложения.

Заранее спасибо

Дан

Ответы [ 2 ]

1 голос
/ 01 ноября 2010

Я думаю, что вместо закрытия выпадающего элемента div и последующего его открытия, когда пользователь переключается между входом в систему и регистрацией, может оказаться более интуитивно понятным просто отобразить правильный регистр или форму входа в пределах открытого раздела.

Этот код может помочь вам независимо, но он реализует то, что я предложил выше.

http://jsbin.com/etezo5

изменить ссылку, чтобы вы могли увидеть код:

http://jsbin.com/etezo5/edit

0 голосов
/ 01 ноября 2010

вы пытались сделать что-то вроде:

$('<a href="javascript:void(0);" id="register" onclick="toggleTheCorrectDiv(true)">Register</a>').appendTo('#support').css({'float':'right','margin-right':'10px'});
$('<a href="javascript:void(0);" id="login" onclick="toggleTheCorrectDiv(false)">Login</a>').appendTo('#support').css({'float':'right','margin-right':'10px'});

Тогда в вашем JS,

function toggleTheCorrectDiv(toggleRegister){
    if (toggleRegister){
       //Show Register Content
    }else{
       //Show Login Content
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...