Javascript Jquery单击事件以多个元素为目标
我在一个图像上有两个触发器。一般行为:Javascript Jquery单击事件以多个元素为目标,javascript,jquery,Javascript,Jquery,我在一个图像上有两个触发器。一般行为: 当我点击一个触发器时,它会显示一个小的上下文框(让它工作起来) 当我在上下文框或触发器外单击时,它应该会消失(使其正常工作) 当我单击另一个触发器时,如果有另一个触发器/上下文框已处于活动/打开状态,则应关闭另一个触发器/上下文框,并打开最近单击的一个触发器(不工作) 以下是html: <span class='pulse-button' id="button-1"></span> <div class="content
- 当我点击一个触发器时,它会显示一个小的上下文框(让它工作起来)
- 当我在上下文框或触发器外单击时,它应该会消失(使其正常工作)
- 当我单击另一个触发器时,如果有另一个触发器/上下文框已处于活动/打开状态,则应关闭另一个触发器/上下文框,并打开最近单击的一个触发器(不工作)
<span class='pulse-button' id="button-1"></span>
<div class="content-box context-closed tabs" id="tabs1">
</div>
我在这里做错了什么?您不需要
中的其他。脉冲按钮
单击。因为else
块中的代码应该执行任何.pulse按钮
是否激活了类脉冲按钮
。更改您的单击事件,如下所示
$(".pulse-button").click(function(e){
e.stopPropagation();
if($(".pulse-button").not(this).hasClass("pulse-button-active")) {
$(".pulse-button").not(this).removeClass("pulse-button-active");
$(".pulse-button").not(this).next().addClass("context-closed");
}
$(this).addClass("pulse-button-active");
$(this).next().removeClass("context-closed");
});
您不需要在.pulse按钮中单击else
。因为else
块中的代码应该执行任何.pulse按钮
是否激活了类脉冲按钮
。更改您的单击事件,如下所示
$(".pulse-button").click(function(e){
e.stopPropagation();
if($(".pulse-button").not(this).hasClass("pulse-button-active")) {
$(".pulse-button").not(this).removeClass("pulse-button-active");
$(".pulse-button").not(this).next().addClass("context-closed");
}
$(this).addClass("pulse-button-active");
$(this).next().removeClass("context-closed");
});
我刚刚意识到我输入了错误的东西——如果你在触发器的上下文框打开的情况下单击触发器,它不会关闭上下文框,而它应该关闭。因此,单击上下文框以外的任何位置或单击触发器都应将其关闭。。。你知道怎么让它工作吗?好的,我已经找到了修复方法,如果你按下了它的触发器,就可以关闭上下文框。。。您给了click函数来切换类,而不是添加或删除它。。。代码:$(this).addClass(“脉冲按钮激活”)$(this).next().removeClass(“上下文关闭”)代码>到<代码>$(此).toggleClass(“脉冲按钮激活”)$(this).next().toggleClass(“上下文关闭”)代码>我刚刚意识到我输入了错误的内容–如果在触发器的关联上下文框打开的情况下单击触发器,它似乎不会关闭上下文框,而应该关闭。因此,单击上下文框以外的任何位置或单击触发器都应将其关闭。。。你知道怎么让它工作吗?好的,我已经找到了修复方法,如果你按下了它的触发器,就可以关闭上下文框。。。您给了click函数来切换类,而不是添加或删除它。。。代码:$(this).addClass(“脉冲按钮激活”)$(this).next().removeClass(“上下文关闭”)代码>到<代码>$(此).toggleClass(“脉冲按钮激活”)$(this).next().toggleClass(“上下文关闭”)代码>