2011-12-21 24 views
0

我顯示/隱藏一個div取決於在那裏我有這個代碼,請點擊:如何解決切換div的錯誤?

$("body").click(function(e) { 
    if(e.target.id == ".userNavBar") { 
     $(".dropdownInfo").css({ 'display' : 'block'}); 
     $('.userNavBar').css({'background-color' : '#444'}); 
     $('.upperBar').css({'border-top-color' : '#ff556f'}); 
    } else { 
     $(".dropdownInfo").css({ 'display' : 'none'}); 
     $('.userNavBar').css({'background-color' : '#333'}); 
     $('.upperBar').css({'border-top-color' : '#333'}); 
    } 
}); 

當我點擊.userNavBar,沒有任何反應,當我的錯誤和警告檢查元素,這些錯誤的4彈出的每次點擊: 「event.layerX和event.layerY在WebKit中被破壞並被棄用,它們將在不久的將來從引擎中移除。」

我該如何解決這個問題?問題是什麼?

+0

向我們展示了HTML – Aknosis 2011-12-21 23:36:50

回答

0

我認爲問題是,你是混亂的ID和班級。

但如果我讀你正在嘗試做正確,你可能會更好的東西掉這樣的:

$(function() { 
    function toggleMenu(show) { 
    $(".dropdownInfo").toggle(show); 
    $('.userNavBar').css('background-color', show ? '#444' : '#333'); 
    $('.upperBar').css('border-top-color', show ? '#ff556f' : '#333'); 
    }; 
    $('.userNavBar').click(function(e) { 
    toggleMenu(true); 
    e.stopPropagation(); 
    }); 
    $("body").click(function(e) { 
    toggleMenu(false); 
    }); 
}); 
+0

哦ggoooaaawawwd我很愚蠢。謝謝 – 2011-12-21 23:48:32

0

嘗試這一點,但對全身關閉文檔單擊事件註冊是不是偉大實踐

$("body").click(function(e) { 
    if($(this).class() == ".userNavBar") { 
     $(".dropdownInfo").css({ 'display' : 'block'}); 
     $('.userNavBar').css({'background-color' : '#444'}); 
     $('.upperBar').css({'border-top-color' : '#ff556f'}); 
    } else { 
     $(".dropdownInfo").css({ 'display' : 'none'}); 
     $('.userNavBar').css({'background-color' : '#333'}); 
     $('.upperBar').css({'border-top-color' : '#333'}); 
    } 
});