我想寫一個簡單的jquery函數來添加類到我的HTML爲屏幕nav
過渡。我可以很容易地通過使用.toggleClass
來做到這一點,但我想要使用if語句,如果nav
單擊正文(除nav之外的任何內容)將會再次隱藏它。我建立了demo codepen。任何人都可以讓我知道我要去哪裏嗎?jQuery關屏幕導航
1
A
回答
2
$('body !nav')
不是一個有效的選擇器。你應該做的是給文檔添加一個監聽器:
$(document).click(function() {
// Stuff you want to do on a click
});
這將捕獲所有不被另一個函數處理的點擊。然後,捕獲發生在資產淨值的點擊次數:
$("nav").click(function(e) {
// Stuff that should happen when nav is clicked.
e.stopPropagation();
});
2
兩件事情需要解決:
1)在導航點擊使用stopPropagation()
(Documentation),以避免註冊體點擊(事件的冒泡默認值):
$('nav').click(function(e) {
e.stopPropagation();
});
2)使用:not
選擇器(Documentation):
$('body:not(nav)').click(function(e) {
if($('nav').hasClass('active')){
$('nav, #wrapper').removeClass('active');
}
});
0
試試這個:
$('a#menu').click(function(e) {
e.preventDefault();
e.stopPropagation();
//this should just be .addClass but to demonstrate functionality I've left it as .toggleClass
$('nav, #wrapper').toggleClass('active');
});
//how I want it to work
//on click of anything besides nav, if the active class is on the nav, take off the active class
$('body:not(nav)').click(function(e) {
if($('nav').hasClass('active')){
$('nav, #wrapper').removeClass('active');
}
});
相關問題
- 1. 導航/屏幕
- 2. 導航屏幕
- 3. 關閉屏幕漢堡包導航
- 4. 關閉屏幕導航抽屜
- 5. jquery導航檢測屏幕大小
- 6. Android - 拖動屏幕導航
- 7. 機器人屏幕導航
- 8. 黑莓屏幕導航
- 9. Android中的屏幕導航
- 10. 黑莓屏幕導航
- 11. Android多屏幕導航
- 12. Android屏幕導航問題
- 13. 如何從一個屏幕導航到另一個屏幕
- 14. 在PhoneGap中導航一個屏幕到其他屏幕
- 15. 鈦:從一個屏幕導航到另一個屏幕
- 16. bigSlide.js - 屏幕滑動面板導航
- 17. 屏幕之間的導航Iphone編程
- 18. android導航屏幕之間的值
- 19. 更改屏幕導航欄爲黑色
- 20. Android的導航問題3個屏幕
- 21. Android:導航至自定義主屏幕
- 22. 跨屏幕拉伸導航背景
- 23. 導航到按鈕,屏幕頭
- 24. Worklight/iOS7屏幕上面移動導航
- 25. 在android中的屏幕導航
- 26. Blackberry來自MenuItem的屏幕導航
- 27. Qt創建器屏幕導航
- 28. 使用StackNavigator在屏幕之間導航
- 29. 登錄屏幕和導航控制器
- 30. 之間的導航屏幕在WPF