当前位置: 代码迷 >> ASP.NET >> onclick和mousedown冲突怎么处理?
  详细解决方案

onclick和mousedown冲突怎么处理?

热度:6608   发布时间:2013-02-25 00:00:00.0
onclick和mousedown冲突怎么办???
如题:
JScript code
 $(function() {            $(document).mousedown(function(event) {                if (event.target.id == 'color') {                    document.getElementById("x-palette-panel").style.display = 'block';                }                else {                    document.getElementById("x-palette-panel").style.display = 'none';                }            });        });

HTML code
<div id="x-palette-panel" class="panel" style="left: 500px; display: none;">   <span style="color:#000000;background-color:#ffffff;" onclick="highContrast(0)">黑底白字</span></div>

我通过点击某个图片使<div id="x-palette-panel">显示出来,点击页面除这个图片外的其他地方这个
<div id="x-palette-panel">隐藏。。。

我的问题就是当我在<div id="x-palette-panel">触发onclick时先触发的是鼠标点击事件引起div又隐藏,这样就不触发
onclick的方法。。。。

求大神帮忙解决。。。求代码~~谢谢


------解决方案--------------------------------------------------------
上面写错了,完整的测试代码应该是
注意:应该是使用click,而不是mousedown

HTML code
<html xmlns="http://www.w3.org/1999/xhtml"><head id="Head1" runat="server">  <title>无标题页</title>  <script type="text/javascript" src="jquery-1.8.1.min.js"></script></head><body>  <form id="form1" runat="server">  <div id="x-palette-panel" class="panel" style="left: 500px; display: none;">    <span style="color: #000000; background-color: #ffffff;" onclick="highContrast(event,0)">      黑底白字</span>  </div>  <img src="http://avatar.profile.csdn.net/C/9/4/2_net_lover.jpg" id="color" />  <div>其他地方的内容</div>  </form>  <script type="text/javascript">    $(function () {      $(document).click(function (event) {        if (event.target.id == 'color') {          document.getElementById("x-palette-panel").style.display = 'block';        }        else {          document.getElementById("x-palette-panel").style.display = 'none';        }      });    });    function highContrast(e, x) {      alert("你点击了 黑底白字 参数=" + x);      if (e && e.stopPropagation) {//非IE          e.stopPropagation();      }      else {//IE          window.event.cancelBubble = true;      }       }  </script></body></html>
------解决方案--------------------------------------------------------
HTML code
 $(function() {            $(document).mousedown(function(event) {                if (event.target.id == 'color') {                    document.getElementById("x-palette-panel").style.display = 'block';                }                else if(event.target.id!='x-palette-panel'){ //再做一层判断                    document.getElementById("x-palette-panel").style.display = 'none';                }            });        });
  相关解决方案