簡體   English   中英

為什么我不能單擊此元素?

[英]Why can't I click this element?

如果選擇此文本,則div將顯示顏色。 我正在嘗試跟蹤是否單擊了這些顏色或div( .boxes )中的一種。 但是我不能。 這是基本的JS,無法正常工作。 為什么?

 $(document).ready(function() { $(".boxes").click(function() { alert("Hello"); }); }); $("#actual_verse").mouseup(function() { var text = ""; if (window.getSelection) { text = window.getSelection().toString(); } else if (document.selection && document.selection.type != "Control") { text = document.selection.createRange().text; } if (/\\S/.test(text)) { new_text = "<div id='color_div'>"+text+"</div>"; // Tool Tip var ele = document.getElementById('tooltip'); var sel = window.getSelection(); var rel1= document.createRange(); rel1.selectNode(document.getElementById('cal1')); var rel2= document.createRange(); rel2.selectNode(document.getElementById('cal2')); window.addEventListener('mouseup', function () { if (!sel.isCollapsed) { debugger; var r = sel.getRangeAt(0).getBoundingClientRect(); var rb1 = rel1.getBoundingClientRect(); var rb2 = rel2.getBoundingClientRect(); ele.style.top = (r.bottom - rb2.top)*100/(rb1.top-rb2.top) + 'px'; //this will place ele below the selection ele.style.left = (r.left - rb2.left)*100/(rb1.left-rb2.left) + 'px'; //this will align the right edges together //code to set content ele.style.display = 'block'; } }); window.addEventListener('mousedown', function () { ele.style.display = 'none'; }); // End of Tool Tip } }); 
 /* Tool Kit */ #tooltip { position:absolute; display:none; border:grey solid 1px; background: #373737; padding: 5px; border-radius: 3px; } #cal1{ position:absolute; height:0px; width:0px; top:100px; left:100px; overflow:none; z-index:-100; } #cal2{ position:absolute; height:0px; width:0px; top:0; left:0; overflow:none; z-index:-100; } .boxes { width: 15px; height: 15px; cursor: pointer; display: inline-block; margin-right: 2px; position: relative; top: 3px; } #blue_box { background: #AAF6FF; } #green_box { background: #D6FFAA; } #orange_box { background: #FFBF98; } #purple_box { background: #D7D5FC; } #red_box { background: #FF9B9F; } #yellow_box { background: #FFF8AA; } /* End of Tool Kit */ 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id='actual_verse'> Hello g mjfrmjrern erjnejnef jfejnfeijmfijfeifeef ejngjrrgrg Hello g mjfrmjrern erjnejnef jfejnfeijmfijfeifeef ejngjrrgrg Hello g mjfrmjrern erjnejnef jfejnfeijmfijfeifeef ejngjrrgrg Hello g mjfrmjrern erjnejnef jfejnfeijmfijfeifeef ejngjrrgrg Hello g mjfrmjrern erjnejnef jfejnfeijmfijfeifeef ejngjrrgrg Hello g mjfrmjrern erjnejnef jfejnfeijmfijfeifeef ejngjrrgrg </div> <div id='cal1'>&nbsp;</div> <div id='cal2'>&nbsp;</div> <div id='tooltip'> <div id='blue_box' class='boxes' title='Blue' onclick='box()'></div> <div id='green_box' class='boxes' title='Green'></div> <div id='orange_box' class='boxes' title='Orange'></div> <div id='purple_box' class='boxes' title='Purple'></div> <div id='red_box' class='boxes' title='Red'></div> </div> <br> <br> 

問題是此代碼:

window.addEventListener('mousedown', function() {
  ele.style.display = 'none';
});

該工具提示在mousedown上被隱藏,它會在單擊“ boxes”類之前觸發。 因此,點擊永遠不會完成。 將此代碼移入click功能- 演示

$(".boxes").click(function() {
  alert("Hello");
  document.getElementById('tooltip').style.display = 'none';
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM