jQuery事件中onclick和mousedown冲突的解决办法
程序员文章站
2022-03-12 23:45:11
...
onclick和mousedown冲突怎么办???
$(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'; } }); });
<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的方法。。。。
求大神帮忙解决。。。求代码~~谢谢
highContrast里面禁止事件冒泡
$("span").click(function(event){ event.stopPropagation(); // do something }) or <span style="color:#000000;background-color:#ffffff;" onclick="highContrast(event,0)">黑底白字</span> function stopBubble(e,x) { //你的执行代码 if (e && e.stopPropagation) {//非IE e.stopPropagation(); } else {//IE window.event.cancelBubble = true; } }
额。。不是很理解。。!highContrast(event,0)这个event参数是什么???还有就是function stopBubble(e,x)方法什么时候调用。。。。
禁止冒泡??难道禁止冒泡就可以实现onclick了吗?
上面写错了,完整的测试代码应该是
注意:应该是使用click,而不是mousedown
<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>
$(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'; } }); });
一边用JQuery一边用JS 为什么不用一个就好
以上就是jQuery事件中onclick和mousedown冲突的解决办法的详细内容,更多请关注其它相关文章!
下一篇: php 编译 iconv错误怎么办
推荐阅读
-
JS中双击和单击事件冲突问题的解决办法
-
jQuery中的mouseenter和mouseleave事件讲解
-
JS中双击和单击事件冲突的解决方法
-
jQuery中click事件的定义和用法
-
搜索提示时jquery的focusout和click事件冲突问题完美解决 搜索提示智能提示focusoutclick事件冲突
-
Jquery中on绑定事件 点击一次 执行多次 的解决办法
-
JS中双击和单击事件冲突问题的解决办法
-
jQuery中的mouseenter和mouseleave事件讲解
-
jquery中input的change事件失效的解决办法
-
JQuery中select标签绑定的onchange事件然后弹出选择的值并实现跳转和传参