我想知道爲什麼下面的代碼在某些瀏覽器中工作?即即使click()
函數沒有參數,但event
變量存在,並且dosomething
方法在事件觸發器對象上被調用?即使沒有作爲參數傳遞,爲什麼'event'變量可用?
$(<selector>).click(function() {
$(event.target).<dosomething>
});
我想知道爲什麼下面的代碼在某些瀏覽器中工作?即即使click()
函數沒有參數,但event
變量存在,並且dosomething
方法在事件觸發器對象上被調用?即使沒有作爲參數傳遞,爲什麼'event'變量可用?
$(<selector>).click(function() {
$(event.target).<dosomething>
});
爲什麼是「事件」變量可用,即使作爲一個參數沒有通過?
它不可靠。例如,該代碼將在Firefox上失敗。
微軟使用了一個全球event
變量。 DOM2將其定義爲處理程序的參數。 Chrome決定將特定於MS的代碼放在骨頭上,然後執行這兩個操作。 Firefox沒有。
即使在代碼工作的瀏覽器上,請注意event
將是一個原始事件對象,而不是jQuery增強的對象。這意味着,例如,在IE8上,您不能撥打event.preventDefault
,因爲IE8不提供該功能。 jQuery會如果你接受了這個參數,因爲即使在缺少這些特性的瀏覽器上,jQuery也提供了一個具有標準化特性的事件對象。
感謝您的信息:),不知道這一點 – Tushar
_global_'event'。嘗試控制檯 – Tushar
中的「事件」,並不能解釋它爲什麼只在某些瀏覽器/版本中才起作用 –
@SergeyPauk:這是一個微軟公司。 – Amadan