2015-12-25 39 views
1

我有一個$(document).click() event關閉一個側欄元素,我停止事件傳播,使其難以控制,但在該側欄中是一個錨點,我想回應.click()事件並關閉側邊欄元素,但我是不知道如何做到這一點。停止傳播元素,但不是它的孩子?

我的HTML代碼

<nav class="sidebar"> 
     <li class="close"><a><span class="fa fa-close">&nbsp;</span>Close</a></li> 
     <a><li class="menu">Explore</li></a> 
     <a><li class="menu">Recent</li></a> 
     <a><li class="menu">About</li></a> 
     <a><li class="menu">Contact</li></a> 
     <a class="signup"><li class="menu">Signup</li></a> 
    </nav> 

的jQuery我打電話(VAR欄= $() '側邊欄'。):

var clickout = function() { 
    $(document).click(function() { 
     sidebar.removeClass('active'); 
     sidebar.animate({ 
     left: '-300px' 
     }, 200, 'easeInOutCubic'); 
    }); 

    sidebar.click(function(e){ 
     e.stopPropagation(); 
    }); 
}; 

回答

1

首先嚐試解決售後服務沒有它的JavaScript。使用css3 ...提供這樣的動畫效果。 link

二給你的導航欄的ID = 「側邊欄」 在jQuery的變化:

var sidebar = $('#sidebar') 

更多的寫:

sidebar.click(function(e){ 
    e.stopPropagation; 
}); 

如果你不想在這個瞬間調用功能。首先是

0

。把錨li標籤

<nav class="sidebar"> 
    <li class="close"><a><span class="fa fa-close">&nbsp;</span>Close</a></li> 
    <li class="menu"><a>Explore</a></li> 
    <li class="menu"><a>Recent</a></li> 
    <li class="menu"><a>About</a></li> 
    <li class="menu"><a>Contact</a></li> 
    <li class="menu"><a class="signup">Signup</a></li> 
</nav> 

然後在下面的sidebar.click內..加上FF

$('a',sidebar).click(function(e){ 
    e.stopPropagation(); 
}); 

意味着它將搜索側邊欄裏面的所有錨及停止父母的事件。