【发布时间】:2014-03-01 03:23:56
【问题描述】:
我需要知道如何更改我的代码以使多个下拉菜单在同一页面上工作。页面上的下拉菜单数量会有所不同,因为它们是从数据库动态创建的。它们的功能由 jquery 提供。我希望每个下拉菜单都独立于其他下拉菜单工作。
代码在下面,但不确定我是否应该发布 eh css,因为它真的很长,所以这里是我的小提琴的链接:http://jsfiddle.net/Pj5rE/
这是 HTML:
<div class="wrapper-demo">
<div id="dd" class="wrapper-dropdown-2" tabindex="1">Dropdown
<ul class="dropdown">
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
</ul>
</div>
</div>
<div class="wrapper-demo">
<div id="dd" class="wrapper-dropdown-2" tabindex="1">Dropdown
<ul class="dropdown">
<li><a href="#">Item 1</a></li>
<li><a href="#">Item 2</a></li>
<li><a href="#">Item 3</a></li>
</ul>
</div>
</div>
这里是javascript:
function DropDown(el) {
this.dd = el;
this.initEvents();
}
DropDown.prototype = {
initEvents : function() {
var obj = this;
obj.dd.on('click', function(event){
$(this).toggleClass('active');
event.stopPropagation();
});
}
}
$(function() {
var dd = new DropDown( $('#dd') );
$(document).click(function() {
// all dropdowns
$('.wrapper-dropdown-2').removeClass('active');
});
});
我对编程和 javascript 还很陌生,所以我希望一切都有意义。非常感谢您提供全部或部分帮助,谢谢!
【问题讨论】:
-
你不能有相同值的 id,它们必须是唯一的。另外,我不确定我是否理解所需的行为。您是否希望通过单击任何其他下拉菜单来激活所有下拉菜单,或者您只是尝试为所有下拉菜单设置单独的行为。你能限定一下吗?
-
我希望每个下拉菜单独立于其他下拉菜单。我现在意识到 id 需要有所不同,但是我该如何让它们全部工作,因为现在 javascript 似乎正在通过它的 id 调用下拉列表。
标签: jquery css dynamic drop-down-menu