【发布时间】:2016-07-15 05:18:08
【问题描述】:
我有一个带有数据属性的导航标题
<nav class="nav-header" data-drawer-display="show" data-drawer-num="0">
将导航的显示设置为在单击导航链接时显示或隐藏,data-drawer-display=""。我需要能够通过使用
$("body").on("click", function(){});
应该将值从show 切换到hide。我试过这个:
$('body').on('click touchstart',function(e){
$( ".nav-header" ).attr( "data-drawer-display", function( i, val ) {
return val === 'show'?'hide':'show';
});
但逻辑似乎不正确。
解决方案
@empiric 的修改版本如下:
$('body').on('touchstart', function(e){
//keeps nav from closing when clicking in subnav and links
if ($(e.target).is('.opener, .nav-sub, a')) {
console.log(target);
return false;
}
//if subnav is open, close on body click.
$( ".nav-header" ).attr( "data-drawer-display", function( i, val ) {
return val === 'show' ? 'hide' : '';
});
});
【问题讨论】:
标签: jquery