Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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
jQuery单击按钮将显示div,再次单击页面的任何区域将隐藏div?_Jquery_Html_Jquery Ui - Fatal编程技术网

jQuery单击按钮将显示div,再次单击页面的任何区域将隐藏div?

jQuery单击按钮将显示div,再次单击页面的任何区域将隐藏div?,jquery,html,jquery-ui,Jquery,Html,Jquery Ui,我有这样的标记。它是用于有人单击的按钮 <div class="logout-wrap"> <div class="account-info"> <a href="../profile.php">admin ADMIN</a> </div><!--.account-info--> <div class="account-info-icon"> <ul> <li><a

我有这样的标记。它是用于有人单击的按钮

<div class="logout-wrap">
  <div class="account-info"> <a href="../profile.php">admin ADMIN</a>
</div><!--.account-info-->
<div class="account-info-icon">
  <ul>
    <li><a href="" class="account-sprited notice"><span>5</span></a></li>
    <li><a href="" class="account-sprited profile profiletest"></a></li>
  </ul>
</div>
</div>

现在显示错误,如
TypeError:event.target未定义

将其添加到document.ready函数中的脚本中

jQuery("body").click(function(e){ //or jQuery(document)
  if(e.target.className !== "profile")
  {
    jQuery('div.account-info-box').hide();
   }
});
最终代码(更新)


jQuery(文档).ready(函数(){
jQuery('div.account-info-box').hide();
jQuery('a.profile')。单击(函数(事件){
event.preventDefault();
jQuery('div.account-info-box').show();
});
jQuery(“body”)。单击(函数(e){//或jQuery(文档)
如果(如:target.className!=“profile”)
{
jQuery('div.account-info-box').hide();
}
});
});

document.Click=Hide();
//要在按钮上显示,请单击
$(“.bottom info”)。单击(函数(){
$(“.account info box”).attr(“显示”、“阻止”);
});
//隐藏它
隐藏(函数(){
$(“.account info box”).attr(“显示”、“无”);
});

$(文档)。单击
?但您必须检查是否未单击
a.profile
,因为这将打开您的
div
使用委派事件,并使用
if($(event.target).closest(selector.length)return进行筛选方法或者更好,使用DIV的焦点/模糊逻辑。这已经被问过了,搜索SOyes这个很好,但是当我重新加载DIV显示内容的年龄时。我希望重新加载页面时div.account-info-box也应该隐藏。
jQuery('div.account-info-box').hide()你删除了这个吗??将此添加到您的脚本…然后有一些东西正在破坏您的代码。。。你能为这个做一个修改吗?让我们使用你最新的代码,帐户信息的div框总是显示display none
<script type="text/javascript">
  jQuery(document).ready(function() {
    jQuery('div.account-info-box').hide();
      jQuery('a.profile').click(function(event){
        event.preventDefault();
        jQuery('div.account-info-box').show();
    });
  });
</script>
jQuery(document).ready(function() {
    jQuery('div.account-info-box').hide();
    jQuery('.profiletest').click(function(event){
      event.preventDefault();
      jQuery('div.account-info-box').show();
   });
 });

 jQuery(document).ready(function(event) {
  if(event.target.ClassName !== 'profiletest') {
    jQuery('div.account-info-box').hide();
  }
 });
jQuery("body").click(function(e){ //or jQuery(document)
  if(e.target.className !== "profile")
  {
    jQuery('div.account-info-box').hide();
   }
});
<script type="text/javascript">
 jQuery(document).ready(function() {
    jQuery('div.account-info-box').hide();
    jQuery('a.profile').click(function(event){
      event.preventDefault();
      jQuery('div.account-info-box').show();
   });

   jQuery("body").click(function(e){ //or jQuery(document)
    if(e.target.className !== "profile")
    {
      jQuery('div.account-info-box').hide();
     }
    });
 });
</script>
<script type="text/jscript">
document.Click = Hide();

//to show on button click
$(".bottom-info").Click(function(){
$(".account-info-box").attr("display","block");
});

//to hide it
Hide(function(){
$(".account-info-box").attr("display","none");
});

<script>