2017-03-29 46 views
0

例如:React.js爆發dispatchEvent

我添加事件處理程序作出反應:

<div onClick={someHandler}/> 

然後我分派事件:

let clickEvt = new MouseEvent('click', { 
    'bubbles': false, 
    'cancelable': true 
}); 

elm.dispatchEvent(clickEvt); 

但沒有任何反應。我聽說你可以使用elm.click()觸發反應事件。我想知道如果這是做出反應的正確方法嗎? click()dispatchEvent()之間的區別是什麼?因爲我想堅持dispatchEvent()

+1

'elm'的價值是什麼? –

+0

它是一個HTMLnode我使用的getElementsByTagName(「按鈕」)[IDX]檢索,按鈕應該存在,否則它應該說財產以後像榆樹是未定義的。 – BigName

+0

@felix我剛剛檢查了兩次,在調用dispatchEvent之前,'elm'被記錄爲右鍵。當我用鼠標點擊按鈕時,一切正常,但'dispatchEvent'什麼都不做。對不起,我在例子中使用了'div',但它是一個按鈕。 – BigName

回答

0

全部

我想通了。 bubbles必須設置爲true以應對接收事件,這就是爲什麼click()方法有效,因爲它會自動起泡。