を表示し、この画像以外のページの他の部分をクリックして
ホームページ >ウェブフロントエンド >jsチュートリアル >jQueryイベントにおけるonclickとmousedownの間の競合の解決策
onclickがマウスダウンと競合する場合はどうすればよいですか? ? ?
$(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'; } }); });rree
画像をクリックして 4606083091e990dee6936f53097509c4 を表示し、この画像以外のページ上の他の場所をクリックします
0c9b3a9782863ce4fad49ac35414e864隠れる。 。 。
私の問題は、4606083091e990dee6936f53097509c4 で onclick をトリガーすると、最初にトリガーされるのは div を非表示にするマウス クリック イベントであるため、
onclick メソッドがトリガーされません。 。 。 。
神に助けを求めてください。 。 。コードを教えてください~~ありがとうございます
ハイコントラストではイベントバブリングは禁止です
<div id="x-palette-panel" class="panel" style="left: 500px; display: none;"> <span style="color:#000000;background-color:#ffffff;" onclick="highContrast(0)">黑底白字</span> </div>
うーん。 。あまり理解できません。 。 ! highContrast(event,0) のイベント パラメーターは何ですか? ? ?関数 stopBubble(e,x) メソッドが呼び出される場合もあります。 。 。 。
バブリングは禁止ですか? ?バブリングを無効にすることで onclick を実現できますか?
上記は間違っています。完全なテストコードは次のようになります。
注: マウスダウンではなくクリックを使用する必要があります
$("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; } }
<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>
JQuery と JS を同時に使用してください
以上がjQueryイベントにおけるonclickとmousedownの間の競合の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。