Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 点击显示。不会在单击时隐藏_Javascript_Jquery_Html_Css - Fatal编程技术网

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();
});