2017-05-14 37 views
0

我有一個div:的Javascript if語句的多個事件

<div id="myDiv">This Div is Tracked</div> 

我需要一個函數來執行以下操作:

例子:

checkSeveralEvents =() => { 

    if (myDivIsHovered || myDivIsClicked || myDivIsFocus) { 

     console.log(`myDiv has been ${eventHere}`); 

    } 

} 

我怎樣才能做到這一點?

+0

你應該看看這個: http://stackoverflow.com/questions/11845678/adding -multiple-event-listeners-to-one-element –

+0

在div變化取決於它你可以通過傳遞附加數據來觸發事件,比如'.fire('myDivIsChanged',{type:「focus」})'''.fire ('myDivIsChanged',{type:「clicked」})'並在一個函數中捕獲它,然後處理它,這取決於傳入的類型 – DanilGholtsman

+0

誰或調用'checkSeveralEvents'?您可能想先熟悉如何對單一事件類型做出反應。 – Bergi

回答

2

您可以只聽所有需要的事件一個接一個:

const d = document.getElementById('myDiv'); 
 
const events = ['click', 'mouseleave', 'mouseover']; 
 

 
events.forEach(e => { 
 
    d.addEventListener(e, (ev) => { 
 
    console.log('My div has been ', e + 'ed') 
 
    }) 
 
})
<div id="myDiv">This Div is Tracked</div>