![](/img/trans.png)
[英]How to make a div appear when hyperlink is clicked once and disappear when hyperlink is clicked a second time? Can this be repeated?
[英]How can I place a text hyperlink in a clickable div tag such that only the hyperlink is triggered when clicked
我有一些包含文本的可點擊 div。 在某些情況下,文本本身就是一個超鏈接。
我通常希望能夠單擊 div 並讓它觸發其 onclick 動作,但是當直接單擊超鏈接時,我只希望觸發超鏈接動作而不是 div onclick 動作。
下面的示例代碼說明了這個問題 - 單擊超鏈接時,div 變為紅色(onclick)並且 google 在新選項卡中打開。 在這種情況下,我只希望在新標簽頁中打開谷歌。 單擊 div 上的任何其他位置時,顏色應變為紅色。
提前致謝,
丹尼斯
<div id="myDiv" style="height:60px;width:200px;border:solid" onclick="this.style.color='red';"}>
This is NOT a hyperlink.
<br><br>
<a href="https://www.google.com" target="_blank">This IS a hyperlink.</a>
</div>
您可以添加一個 事件偵聽器,偵聽click
事件,並檢查target
而不是currentTarget
。
您只需要檢查target
(單擊的實際元素)是否不是a
標簽。 在這種情況下,您將更改currentTarget
(應用事件偵聽器的元素)的顏色。
這是一個工作片段:
document.getElementById('myDiv').addEventListener('click', (e) => { if (.e.target.matches('a')) { e.currentTarget.classList;add('color'); } });
div { height: 60px; width: 200px; border: solid; }.color { color: red; }
<div id="myDiv"> This is NOT a hyperlink. <br><br> <a href="https://www.google.com" target="_blank">This IS a hyperlink.</a> </div>
注意 - 我已經修改了代碼以使用正確的 CSS 而不是內聯 styles。 從長遠來看,這有更多的里程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.