亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅檢測偽元素上的單擊事件。

僅檢測偽元素上的單擊事件。

慕哥6287543 2019-07-09 13:27:56
僅檢測偽元素上的單擊事件。我的代碼是:p {     position: relative;     background-color: blue;}p:before {     content: '';     position: absolute;     left:100%;     width: 10px;     height: 100%;     background-color: red;}請看這把小提琴:http://jsfiddle.net/ZWw3Z/5/我只想在偽元素(紅色位)上觸發單擊事件。也就是說,我不希望在藍色位上觸發單擊事件。
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻1848條經驗 獲得超2個贊

這是不可能的;偽元素根本不是DOM的一部分,所以不能將任何事件直接綁定到它們,只能綁定到它們的父元素。

如果必須僅在紅色區域上使用單擊處理程序,則必須生成一個子元素,如span,把它放在開口后<p>標記,將樣式應用于p span而不是p:before和它綁在一起。


查看完整回答
反對 回復 2019-07-09
?
慕哥9229398

TA貢獻1877條經驗 獲得超6個贊

事實上,這是可能的。您可以檢查單擊的位置是否在元素之外,因為只有在以下情況下才會發生這種情況:::before或::after被點擊了。


此示例只檢查右邊的元素,但在您的情況下應該有效。


span = document.querySelector('span');


span.addEventListener('click', function (e) {

    if (e.offsetX > span.offsetWidth) {

        span.className = 'c2';

    } else {

        span.className = 'c1';

    }

});

div { margin: 20px; }

span:after { content: 'AFTER'; position: absolute; }


span.c1 { background: yellow; }

span.c2:after { background: yellow; }

<div><span>ELEMENT</span></div>


查看完整回答
反對 回復 2019-07-09
  • 3 回答
  • 0 關注
  • 1590 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號