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>
고대비는 이벤트 버블링을 금지합니다
$("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)의 이벤트 매개변수는 무엇입니까? ? ? stopBubble(e,x) 메소드가 호출되는 경우도 있습니다. . . .
버블링은 금지인가요? ? 버블링을 비활성화하면 onclick을 얻을 수 있나요?
위 내용은 잘못되었습니다. 전체 테스트 코드는 다음과 같아야 합니다.
참고: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!