为什么onclick Javascript不能为多个下拉菜单工作
Why onclick Javascript not working for multiple dropDowns?
我目前有2个下拉框是相同的类和什么的,数据正在填充来自MySQL的信息。
<section id="list1" class="dropdown-check-list" onclick="firstDropDown()">
<span class="anchor">Boards</span>
<ul class="items">
<li><input type="checkbox" value="'.$boardiD.'">'.$boardName.'</li>
</ul>
</section>
上面我有两个,当显示在页面上时,当我点击它时,只有第一个下拉菜单打开。
以下是目前正在使用的JavaScript,我从另一个调整,但它们都不允许打开所有的复选框。
function firstDropDown()
{
var checkList = document.getElementById('list1');
checkList.onclick = function (evt)
{
if (checkList.classList.contains('visible'))
checkList.classList.remove('visible');
else
checkList.classList.add('visible');
}
}
原始代码是这样的…但是当我添加两个list1下拉列表时,它出现了问题。
var checkList = document.getElementById('list1');
checkList.getElementsByClassName('anchor')[0].onclick = function (evt)
{
if (checkList.classList.contains('visible'))
checkList.classList.remove('visible');
else
checkList.classList.add('visible');
}
这里是一个jsFiddle的问题:我试图包括一个特定的id在锚和包含在javascript中,但甚至没有工作:http://jsfiddle.net/3GY74/1/
两者是否具有相同的id?您需要确保id是唯一的,并且您的函数考虑了正确的元素:
我建议你修改:
<section id="list1" class="dropdown-check-list" onclick="firstDropDown()">
:
<section id="list1" class="dropdown-check-list" onclick="firstDropDown(this)">
然后改成
function firstDropDown()
{
var checkList = document.getElementById('list1');
:
function firstDropDown(checkList)
{
这将允许"checkList"变量依赖于被激活的元素。
id应该是唯一的!确保两个列表具有不同的id。此外,如果您希望将多个事件附加到列表中,您可能希望使用addEventListener
而不是onclick
,因为.onclick
仅支持1。
相关文章:
- 如何使Jquery编码的动态下拉菜单与PHP GET变量协调工作
- AngularJS下拉菜单多选不工作
- 当屏幕宽度减小时,Bootstrap Form下拉菜单停止工作
- 为什么我的下拉菜单在本地服务器上可以工作,但当我推到heroku时却不能
- 下拉菜单、CSS、HTML和JavaScript:JavaScript使菜单跳转,无法正常工作
- jQuery:这个简单的片段是如何工作的(下拉菜单)
- Jquery 下拉菜单无法正常工作
- 我正在创建 JavaScript 下拉菜单,但它没有按预期工作
- j查询下拉菜单.页面标记无法正常工作 - 或者我想要它的方式
- 无法让我的下拉菜单在基于引导的 Wordpress 主题中工作
- 为什么这个下拉菜单没有填充工作链接
- 图像滑块和下拉菜单不能一起工作
- 第四模式阻止导航栏下拉菜单正常工作
- 下拉菜单无法从CSS或Javascript工作
- 下拉菜单几乎可以工作,但并不完美
- 下拉菜单'的更改处理程序工作起来有点奇怪
- 使两个脚本一起为下拉菜单工作
- 为什么onclick Javascript不能为多个下拉菜单工作
- Jquery脚本自动填充下拉菜单工作,但我如何让用户仍然选择选项
- 一个引导下拉菜单工作,而另一个不在同一页面上