我想写一个简单的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