我遇到了調試某人代碼的奇怪情況。下面的代碼是該問題的演示。jQuery事件處理程序和未聲明的事件對象
我的印象是當進入事件處理程序時,event
應該是undefined
。這就像在Firefox中,但在Chrome和IE11 event
不是undefined
,而是包含事件對象。我的猜測是閉包有效,但在Firefox中不起作用。
它應該使用哪種方式?不一致的原因在哪裏(jQuery?Firefox?Chrome/IE11?)?
$('button').on('click',function(){
var color = '#'+(Math.random()*0xFFFFFF<<0).toString(16);
$(event.target).css({backgroundColor:color});
$('body').css({backgroundColor:color});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button type="button">Click me!</button>
是否存在某種使用它的事件的父事件?該事件是否與按鈕點擊相關聯? iirc'event'應該是未定義的,因爲它並不隱式傳遞給回調函數 –
現在我知道我在找什麼,MDN的文章[window.event](https://developer.mozilla.org/en- US/docs/Web/API/Window/event)給出了詳細信息。 – Ouroborus