2014-10-11 2 views
0

У меня есть текст, в котором говорится «login/signup». , когда вы нажимаете на текст, окно исчезает под ним с некоторыми параметрами входа. затем, когда вы нажимаете на него, он снова исчезает.jQuery fade in/out не работает во второй раз, он сразу исчезает

$(document).ready(function() { 

$("#menu").on("click","#login",function() { 
//the following is to keep this part clickable. 
    $(this).find('div, span, input, a').addClass('noclick'); 

    $('#signups').fadeIn(200, function() { 
     $('html').on('click', function(event) { 
      var target = $(event.target); 
       if (target.is('.noclick')) {       
       } 
       else{ 
        $('#signups').fadeOut(200); 
       } 
      }); 
     }); 
    }); 
}); 

не знаю, почему это не работает, любая помощь будет оценена по достоинству.

Также, какую версию jQuery я должен поставить ссылку вверху страницы? или это не имеет значения?

Thanx

редактировать все еще есть проблемы .... пожалуйста, прочитайте комментарии от первого ответа, если вы хотите помочь. thankyou

ответ

1

Вам нужно обработать событие пузырькового щелчка один раз на документе. Это означает, что вам нужен метод jQuery one с аргументом селектора. Заменить $('html').on(... с этим:

$(document).one('click', ':not(.noclick)', function() { 
    $('#signups').fadeOut(200); 
}); 

Я рекомендую вам последнюю первую или вторую версию JQuery.

+0

гений. Спасибо. (... html). (... но ваш способ использует меньше кода так лучше :) thankyou – dragonvsphoenix

+0

oh на самом деле ваш путь не работает ... кажется, что он по-прежнему исчезает, хотя я нажимаю элемент «noclick» classed ... любые идеи? – dragonvsphoenix

+0

, и даже если мы действительно его работаем ... если я нажму на зону «noclick», которая затем остановит клики от и я не смогу вообще исчезнуть ..... – dragonvsphoenix

Смежные вопросы