我正在创建一个下拉菜单,该菜单将在一个页面上重复使用多次。
当只有一个下拉菜单时,以下代码效果很好。但是当有多个下拉菜单时,点击一个.dropdown
将导致页面上的所有.dd_menu
被显示出来。
$(document).ready(function() {
$('.dropdown').click(function(){
$('.dd_menu').toggle();
});
});
<div class="dropdown">
<a class="mini_button" href="#">Actions</a>
<div class="dd_menu">
<a href="http://example.com">Link</a>
<a href="http://example.com">Link</a>
<a href="http://example.com">Link</a>
</div>
</div>
是否只有针对特定.dd_menu
点击内的.downdown
的内容?
答案 0 :(得分:4)
将选择器限制为.dd_menu
,它是当前点击的.dropdown
div的子项:
$(document).ready(function() {
$('.dropdown').click(function(){
$('.dd_menu', this).toggle(); // <========== used this as a context.
});
});
jQuery( selector [, context] )
:
selector
包含选择器表达式context
DOM元素,文档或jQuery用作上下文您也可以使用find
函数:$(this).find('.dd_menu')
但它完全相同。上下文选择器正在调用find
函数。
答案 1 :(得分:0)
你可以尝试:
$(this).children('.dd_menu').toggle();
答案 2 :(得分:-1)
$(document).ready(function() {
$('.dropdown').on('click', 'a', function(){
$('.dd_menu:eq('+$(this).parent().index()+')').toggle();
});
});