2014-10-11 114 views
0

我有一些說'登錄/註冊'的文字。 當你點擊文本時,一個框會在其下面用一些登錄選項淡入。那麼當您在該框外單擊時,它會再次淡出。jquery淡入/淡出第二次不工作,它立即淡出

$(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版本應該把鏈接放在頁面頂部?或者沒有關係?

感謝名單

編輯 仍然有問題....如果你想幫助請閱讀從第一個答案的評論。謝謝你

回答

1

你需要在文檔上處理一次冒泡的點擊事件。這意味着您需要使用帶有選擇器參數的jQuery方法one。 這個替換您$('html').on(...

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

我建議你最新的第一或第二的jQuery版本。

+0

天才。謝謝。也只是改變$('html')。(...到$('html')。一個(...但你的方式使用更少的代碼,所以更好:)謝謝 – dragonvsphoenix 2014-10-11 20:23:31

+0

哦,其實你的方式不工作...它似乎仍然消失,即使我點擊'noclick'分類元素...任何想法? – dragonvsphoenix 2014-10-11 20:37:48

+0

,即使我們確實得到它的工作....如果我點擊'noclick'區域,然後將停止點擊從工作,我不會淡出所有..... – dragonvsphoenix 2014-10-11 21:24:52