2014-07-23 128 views
-1

遇到一個非常奇怪的錯誤,我似乎無法通過。jQuery不切換div顯示屬性

我在我的Web控制檯中沒有語法錯誤,但仍然無法讓我的函數工作。

我只是通過.slideToggle()切換div,但它沒有註冊我的點擊事件。

這是我的HTML;

<div id="btnAcc" title="Log In"></div> 

    <div id="userMenu"> 

     // Some Stuff 

    </div> 

這裏是我的JS:

// APP BAR

$('#btnAcc').click(function(){ 
     $('#userMenu').slideToggle();   
    }); 

當我發出$( '#userMenu的')的slideToggle();在我的Web控制檯中,div滑落。但是當我點擊div時我無法使它工作。

任何想法?

+0

你能創建一個jsFiddle.net的例子嗎?您的userMenu元素是否動態添加? – j08691

+0

我的感覺是,您在DOM中存在元素之前附加事件。確保代碼處於文檔就緒事件或html元素定義之後。 –

+0

^我該如何測試?我已經把所有東西都包裹在一個document.ready – Vranvs

回答

0

當您的jQuery運行時,DOM尚未完全加載。試試這個:

$(document).ready(function() { 
    $('#btnAcc').click(function(){ 
     $('#userMenu').slideToggle();   
    }); 
}); 
+0

哇,我只是偶然在我的最後}}下面添加了我的代碼;右括號。謝謝。 – Vranvs

+0

沒問題,很高興幫助! – Tricky12

0

嘗試調用像這樣的事件:

$(document).on('click', '#btnAcc', function() { 
    $('#userMenu').slideToggle(); 
}); 

你最有可能要轉讓的事件尚未加載到DOM又一個HTML元素。