2011-05-23 26 views
1

我有一個基本的JQuery腳本,當你點擊 - 因此顯示它們 - 通過切換,改變幾個div。JQuery - 也觸發點擊變化

<script type="text/javascript"> 
    $('#content_display').click(function() { 
     $(this).toggleClass('selected'); 
     $('#content_display_selector_container').toggle(); 
    }); 
</script> 

但是 - 調用連你需要點擊只能在具有「content_display」的ID的第一主股利。

我的問題是這樣的:我怎麼能隱藏使用JQuery如果用戶還點擊BODY這些變化 - 即,如果你點擊即可,的div回到原來的隱藏狀態?

感謝您幫助JQuery clutz!

+0

綁定一個'click'處理到'document'或'body'元素。 – 2011-05-23 12:16:56

回答

1

嘿 - 找到一種方法來做到這一點 - 沒有人認爲有更好的辦法?

這裏的結果:

<script type="text/javascript"> 
    var mousetrap = false; 
    $('body').click(function() { 
     if (mousetrap == false) { 
      $('#content_display').removeClass('selected'); 
      $('#content_display_selector_container').hide(); 
     } 
    }); 
    $('#content_display').hover(function() { 
     mousetrap = true; 
    },function(){ 
     mousetrap = false; 
}); 
    $('#content_display').click(function() { 
      $(this).toggleClass('selected'); 
      $('#content_display_selector_container').toggle(); 
    }); 
</script> 
5

像這樣的東西應該工作:

$('body').click(function(e) { 
    if (!$(e.target).is('#content_display')) { 
     $('#content_display').removeClass('selected'); 
     $('content_display_selector_container').hide(); 
    } 
}); 
+3

或者在其他點擊處理程序中使用'e.stopPropagation()'。根據整個頁面,動態添加和刪除點擊處理程序可能會更好。 – 2011-05-23 12:19:03

+0

啊不錯!我會試試這個...我的解決方案(下面)waaayyy太久了! – Jamison 2011-05-23 12:21:51