点击div和某些控件之外的地方隐藏div,点击div不隐藏。对象 click和document click冲突有关问题

帮朋友解决这个问题,我发现用以往想想像的方式来实现,貌似不太可行,所以从网上找了一些解决办法,进行优化,这篇比较详细,所以拿来备忘,另一方面也希望可以帮助需要的同学!

问题背景:jQuery事件问题!!对象 click和document click冲突问题

我想点击某个元素显示一个对象, 点击页面任意处,隐藏这个对象

//点击look对象,显示隐藏mydiv
 $("#look").bind("click", function () {
    
  $("#mydiv").toggle();
    
  })
//点击任意地方,隐藏显示的mydiv

$(document).bind("click", function () {
    
  if ($("#mydiv").css("display") == "block") {
  $("#mydiv").hide();
  }

})

这样两个事件冲突了,点击look对象,不会显示mydiv

------解决方案--------------------
防止点击事件冒泡 return false; 
------解决方案--------------------
不是冲突。。是冒泡了,,
$("#look").bind("click", function (e) {
  
$("#mydiv").toggle();
e.stopPropagation
})

试试 
------解决方案--------------------

JScript code
$("#look").bind("click", function () {

  $("#mydiv").toggle();
    return false;
  })
------解决方案--------------------
HTML code
$(document).bind("click", function (e) {
    if ($(e.target).is(‘#test‘)) return;
    else{
        if ($("#mydiv").css("display") == "block") {
             $("#mydiv").hide();
        }
    }
  })
------解决方案--------------------e.stopPropagation是这个
------解决方案--------------------

探讨

$(document).bind("click", function (e) {
if ($(e.target).is(‘#test‘)) return;
else{
if ($("#mydiv").css("display") == "block") {
$("#mydiv").hide();
$(e.target).is(‘#test‘)主要是确定点击哪个目标,点击这个目标后不隐藏,点击其他就隐藏。为了保证点击这个div里面的控件不隐藏,可以设置$(e.target.parents()).is(‘#test‘)。保证点击某个div里面的东西也不隐藏。

……

------解决方案--------------------
JScript code
$("#look").bind("click", function () {
  $("#mydiv").toggle();
event.stopPropagation();
  })
------解决方案--------------------

探讨

JScript code

$("#look").bind("click", function (event) {
$("#mydiv").toggle();
event.stopPropagation();
})

------解决方案--------------------return false就好了.
JScript code
<html>

<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("p").click(function(){
  $(this).hide();
  });

$("#look").bind("click", function () {

  $("#mydiv").toggle();
return false;

  })
//点击任意地方,隐藏显示的mydiv

  $(document).bind("click", function () {

  if ($("#mydiv").css("display") == "block") {
  $("#mydiv").hide();
  }

  })
});
</script>
</head>

<body>
<div id=‘look‘>
   click
</div>
<div id="mydiv">
<p>If you click on me, I will disappear.</p>
</div>
</body>

</html>
------解决方案--------------------
JScript code
$(function(){
$("#look").click(function (e) {
     $("#mydiv").show();
     return false;
  });
//点击任意地方,隐藏显示的mydiv
  $(document).click(function () {
      $("#mydiv").hide();
  });
});

转自:http://blog.csdn.net/xudanna/article/details/51818992
时间: 2024-08-25 01:43:52

点击div和某些控件之外的地方隐藏div,点击div不隐藏。对象 click和document click冲突有关问题的相关文章

点击CheckBox让Gridview控件在编辑与正常状态之间切换

昨晚快休息时,还有一位网友咨询Insus.NET,他想在开发时,实现一个小功能,就是想让用户在点击Gridview控件第一列的CheckBox之后,GridView进入编辑状态,取消选中的CheckBox,GridView的当前行回复正常状态.是否能实现.当时Insus.NET有提供示例供其参考: http://www.cnblogs.com/insus/p/3219262.html 今早打开Skype一看,他留言了,说还是做不出来.下面Insus.NET还修改一下上面链接的示例,改为网友的实际

Android开发:ListView控件:给Item绑定了点击事件,却点击无效

一.问题引入 ListView控件:给Item绑定了点击事件,却点击无效. 二.解决方案 ListView使用了自定义布局文件,在布局文件中有button等控件时,这些控件获取焦点的级别比listView的item高,所以当点击item时,button等控件会优先获得点击焦点. 解决方法就是在布局文件根元素中添加属性: android:descendantFocusability="blocksDescendants" android:descendantFocusability De

关于iOS UIWebView 加载网页,点击网页内某些控件导致 Application &#39;UIKitApplication:xxx.xxx.xxx&#39; was killed by jetsam.

问题:公司用的腾讯问卷系统,内嵌在我们应用或游戏的自定义UIWebView里面展示,发现在iOS 10 以下系统,点击圆形勾选框 会大概率出现闪退. 通过联调发现:报了这样一个警告Application 'UIKitApplication:xxx.xxx.xxx' was killed by jetsam. 然后没有更多的信息了. (连接真机调试,当发生闪退的时候,设备会同时跟Xcode断开连接,没有更多的错误堆栈,另外设备也没有记录下更多的Crash log 提供定位.) 最后从以下获取到近似

《纵向切入ASP.NET 3.5控件和组件开发技术》笔记:高效率事件集合对象

在之前讲的几个例子中,使用的是最普通的定义事件方法,比如KingTextBox中事件是这样定义的:/// <summary>/// 获得本书更多内容,请看:/// http://blog.csdn.net/ChengKing/archive/2008/08/18/2792440.aspx/// </summary>public event EventHandler TextChanged;protected virtual void OnTextChanged(EventArgs

Robotium学习之点击没有ID的控件如何实现

---恢复内容开始--- 其实这篇文章写起来听费劲的,毕竟我自己也是刚刚解决这个问题..理解可能还是不太够,想说却也不知道从哪里说起比较好. UI自动化测试,我是以monkeyrunner入门的,这个工具,说实话入门真的很容易,sdk自带工具,环境不用花时间配置:脚本语言Python就我现在的理解看来也是一门非常实用并且简单的语言.但是原生的monkeyrunner几乎不能做任何复杂的事情,而大神们写的一些插件,也因为资料太少始终无法做的很好.所以怀着很复杂的心情,我放弃了monkeyrunne

ListView中的Item点击事件和子控件的冲突或者item点击没有反应的解决办法

fragment中添加了button和checkbox这些控件,此时这些子控件会将焦点获取到,所以常常当点击item时变化的是子控件,item本身的点击没有响应. 这时候就可以使用descendantFocusability来解决啦,API描述如下: android:descendantFocusability 该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系. 属性的值有三种: beforeDescendants:viewgroup会优先其子类控件而获取到焦点

jQuery选择器的应用——控制特定DIV中的控件

<div class="row"> <label for="FName" class="control-label col-sm-4">设备名称</label> <div class="col-sm-8"> <input type="text" id="FName" class="form-control input-sm&

点击Textbox 给日历控件赋值

1.前台代码: <asp:TextBox ID="TextBox1" runat="server" onfocus="return show();" ReadOnly="true" ></asp:TextBox><asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="Calen

div模拟dropdownlist控件 div下拉菜单

原文发布时间为:2009-10-16 -- 来源于本人的百度文章 [由搬家工具导入] 控件发布:div2dropdownlist(div模拟dropdownlist控件) div3dropdownlist控件参数说明。下载:div2dropdownlist**************************************************************************说明:解决普通dropdownlist控件,无法解析html语言,而显示一些特殊字符形式。如数学