我想我可能知道这个问题的答案,但是对于 jQuery 的世界来说仍然是一个新手.
这是场景:我有多个基于 div/ul 的下拉列表,当然它们具有相同的类名。我想要发生的是当单击下拉菜单的按钮时,您可以单击下拉元素内部而不关闭下拉菜单。我假设因为他们都有相同的课程,所以stopPropogation
不起作用。这是jQuery代码:
<script type='text/javascript'>
$('.dropdown-menu').each(function(){
$(this).click(function(event){
if($(this).hasClass('keep_open')){
event.stopPropagation();
}
});
});
</script>
这是下拉列表之一的示例(其中有多个)。如果你注意到类似的类名,我会使用 Twitter Bootstrap:
<div class="btn-group">
<div class="btn btn-mini" tabindex="-1">DROPDOWN NAME</div>
<div class="btn btn-mini dropdown-toggle" data-toggle="dropdown" tabindex="-1">
<span class="caret"></span>
</div>
<ul class="dropdown-menu dropdown-pad keep-open">
<li><b>Info:</b> <small>NAME INFO</small></li>
<li><b>Thoughts:</b> <small>THOUGHT INFO</small></li>
<li><b>Favorite Places:</b>
<br><small>FAVORITE PLACE<br>FAVORITE PLACE 2</small>
</li>
</ul>
</div>
编辑 所以错误不太可能出现在 jQuery 部分,而是在下拉 div 本身中。在同一页面上,我使用了以下下拉列表的变体,它的工作原理就像一个冠军:
<div class="btn-toolbar">
<div class="btn-group">
<a class="btn dropdown-toggle" href="#" data-toggle="dropdown">
Department
<span class="caret"></span>
</a>
<ul class="dropdown-menu keep_open">
<li>Customer Service</li>
<li>Tech Support</li>
</ul>
</div>
</div>