任何建議檢測雙擊事件是否不在文本上,而是在影像(或網站上的其他元素)上的最方便的方法是什么?
更多資訊:目前,我使用“document.addEventListener("dblclick", getSelectedText);” 在網站上獲得一個雙擊的詞。但是我的擴展程式的許多用戶抱怨他們經常錯誤地雙擊影像等......所以我想消除那些雙擊事件。
uj5u.com熱心網友回復:
getSelectedText您可以呼叫一個包裝函式來檢查目標元素的標簽型別,而不是呼叫:
function ignoreTargetImages (event) {
if (event.target.tagName === 'IMG') {
// element is an image, so handle differently or ignore
} else {
getSelectedText(event);
}
}
document.addEventListener("dblclick", ignoreTargetImages);
uj5u.com熱心網友回復:
您可以創建一個函式,getSelectedText如果雙擊不是在一個或多個被忽略的標簽上,則該函式僅呼叫您的方法
function ignoreTags(ignoreTags, fn){
return function(e){
if(!ignoreTags.includes(e.target.tagName))
fn(e);
}
}
function getSelectedText(e) { console.log("get the text") }
document.addEventListener("dblclick", ignoreTags(["IMG"],getSelectedText));
<p>Some text</p>
<img src="https://via.placeholder.com/150">
如果需要,這將允許您添加到忽略的標簽串列中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/381497.html
標籤:javascript
