如何使toggleClass()在元素外部单击时工作
How to make toggleClass() work when clicked outside of an element
我创建了一个地图,其中包含特定位置的点(.field name field pin point),当点击这些点时,他们会打开一个包含更多信息的框。问题是这些点很小,所以再次点击它们来关闭框很烦人。我只想更改一下,这样当用户在".group dealers"之外点击时,toggleClass(隐藏)将被激活。
这是我目前使用的代码,非常适合使用.field name字段接点作为开/关切换:
jQuery('.node-201 .field-name-field-pin-point').click(function() {
jQuery(this).siblings('.group-dealer').toggleClass('hidden');/* use toggleClass if more appropriate*/
});
以下是基本的HTML布局:
<div class="node-201">
<div class="group-dealer">...</div>
<div class="field-name-field-pin-point">...</div>
</div>
尝试委派事件并使用e.target
来解决问题
jQuery(document).click(function(e) {
if( $(e.target).hasClass('field-name-field-pin-point')) {
// your code here
} else {
// Add the hidden class if clicked outside
jQuery('.node-201 .field-name-field-pin-point').addClass('hidden');
}
});
试试这样的东西:
$(function() {
$('.node').click(function() {
$(this).find('.group-dealer').toggle();
})
});
任何时候单击类为"node"的元素时,都会在单击的特定节点内找到类为"class group dealer"的元素,并切换其可见性。您不必创建一个带有display:none的"隐藏"类;并打开和关闭该类。jQuery.thoggle()将自动为您切换可见性。
相关文章:
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 使用 jQuery,当我在输入框外部单击时,如何更改输入元素的值
- 在日期选择器外部单击时,.blur()不会触发
- 为在外部单击时关闭的库图像创建预览效果
- 如何使toggleClass()在元素外部单击时工作
- 在fancybox2外部单击
- 如果在Div元素外部单击,请关闭该元素
- 如何使用AngularJsOnly在元素外部单击时关闭元素
- d3.js在元素外部单击时,隐藏该元素
- addClass”;输入无效”;输入dos't显示,直到我在输入元素外部单击为止
- 从图表外部单击高图表上的某个点
- 切换关闭外部单击
- 如果在外部单击,则隐藏弹出窗口.为什么我的脚本没有'不起作用
- 在元素外部单击时激发事件的指令
- 使用jquery在外部单击时引导折叠/隐藏
- 使用外部单击关闭自定义指令弹出框
- 防止在工具提示外部单击时隐藏/关闭剑道工具提示
- 在 jQuery 中从父元素外部单击“this”时如何切换子元素
- 如何在元素外部单击时使用 jQuery 隐藏元素
- JavaScript 下拉菜单在单击时处于活动状态,在外部单击时不活动