jQuery .click 停止所有具有相同类的元素在单击时打开
jQuery .click stop all elements with the same class opening on click
我编写了这个绑定到按钮的函数,单击该按钮时会切换类以提供下拉列表。唯一的问题是我在同一页面上有多个具有相同功能的按钮,当单击一个按钮时它们都会触发:
任何和所有的帮助都极大地赞赏:)
app.bind.DirectionDropdown = function(){
$('.direction-button').bind('click', function(){
$('.direction-dropdown').toggleClass('active');
});
};
.fade-in {
visibility: hidden;
opacity: 0;
transition: visibility 0s,opacity .3s ease-in-out,all .3s ease-in-out;
-webkit-transition: visibility 0s,opacity .3s ease-in-out,all .3s ease-in-out;
-ms-transition: visibility 0s,opacity .3s ease-in-out,all .3s ease-in-out;
-moz-transition: visibility 0s,opacity .3s ease-in-out,all .3s ease-in-out;
}
.active {
visibility: visible;
opacity: 1;
transform: translate(0,0);
-webkit-transform: translate(0,0);
-moz-transform: translate(0,0);
-ms-transform: translate(0,0);
}
<a href="#" title="#" class="direction-button">Click to reveal text</a>
<div class="direction-dropdown fade-in">
<p>Reveal this</p>
</div>
<a href="#" title="#" class="direction-button">Click to reveal text</a>
<div class="direction-dropdown fade-in">
<p>Reveal this</p>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
您必须使用 this
关键字,并且仅定位.direction-dropdown
后面的.direction-button
$('.direction-button').on('click', function(){
$(this).next('.direction-dropdown').toggleClass('active');
});
在你的回调中,你需要使用它而不是.direction-button:
$('.direction-button').bind('click', function(){
$(this).toggleClass('active');
});
$(".direction-button") 使 JQuery 搜索在整个 DOM 对象中
相关文章:
- 对同一类中的所有元素单击一次
- 元素单击处理程序由一个神秘的函数取消设置
- 在处理元素单击事件期间,在循环内部调用window.open()
- JS-是否可以获得元素单击位置的确切宽度
- 使用 jQuery 创建动态元素 单击事件始终返回 for 循环中的最后一个索引
- 选中父元素单击上的复选框
- 在窗口和其他元素单击时隐藏
- Polymerjs 的自定义菜单元素单击事件
- 使用 javascript 函数查找元素单击的类
- 元素单击仅使用 javascript
- 等待文档鼠标按下完成,然后元素单击才能开始
- 由于父元素的顶部和位置,子元素单击不起作用
- Jquery-在共享相同类名的其他元素之间选择一个元素(单击时)
- 目标元素单击子元素,获取父属性
- 根据元素单击更改选择选项值
- 为listview上动态生成的元素单击event
- 扩展原生元素单击事件
- 可以被许多元素使用的Javascript函数,然后区分哪个元素单击了它
- 当元素单击时隐藏iframe
- 按钮元素单击事件以切换类不起作用