Javascript 点击显示。不会在单击时隐藏
我有一个关闭按钮,由Javascript 点击显示。不会在单击时隐藏,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个关闭按钮,由 <p><span class="glyphicon glyphicon-remove" aria-label="Close"></span></p> <div id="tag1" class="tag"> <p class="p1">Dog Info</p> <video id="VideoA1" class="VideoA"><
<p><span class="glyphicon glyphicon-remove" aria-label="Close"></span></p>
<div id="tag1" class="tag">
<p class="p1">Dog Info</p>
<video id="VideoA1" class="VideoA"><source src=""></video>
<p><span class="glyphicon glyphicon-remove" aria-label="Close"></span></p>
</div>
正如你所见,它是隐藏的。然后在jquery中,我基本上让包含此按钮的div在单击时展开。那很好用。单击div时,我也会看到clode按钮span。这也很好。但是,我无法在单击时显示相同的关闭按钮
$(".row1 .tag").click(function(){
$(this).siblings().hide();
$(this).animate({
width:"90%",
});
$(".VideoA", this).css('display', 'none');
$("p .glyphicon-remove", this).show();
});
$("p .glyphicon-remove").click(function(){
$(this).hide();
});
===========================
可能的解决办法:
我似乎可以选择CLOSE按钮,方法是选择它的类,然后告诉jquery隐藏它的父级
$(".glyphicon-remove").click(function(){
$(this).parent().hide();
});
您应该使用来防止事件在DOM树中冒泡,防止任何父处理程序收到事件通知,在您的情况下,单击关闭按钮时会触发click on.tag div,因此需要在此处使用StopRopAgation来防止:
$("p .glyphicon-remove").click(function(e){
e.stopPropagation();
$(this).hide();
});
希望这有帮助。你能包括周围的html吗?这正是我要问的,对吗now@depperm我添加了html,检查我的编辑。我不明白你需要删除什么。仅仅是p和span还是整个div.tag?我想他是用.parent.hideca单独找到了解决方案。你能解释一下动态的意思以及为什么需要on吗?好的,这很有意义。但是我不认为它是动态添加的,因为它是html的一部分,但是最初的css显示为display:none。所以我不认为这是我的问题。好的,检查我的更新并尝试添加e.stopPropagation;这是小提琴上的作品。是的,似乎就是这样。我猜点击它会让浏览器认为div也被点击了,这使它再次运行第一个函数,导致关闭按钮被重新显示。你可以把它作为一个答案发布。是的,这就是发生的事情,检查我的更新,祝你好运。
$("p .glyphicon-remove").click(function(e){
e.stopPropagation();
$(this).hide();
});