1
這個問題出於好奇。我正在開發一個插件,並在爲其創建演示頁時遇到此問題。IE:通過DOM元素屬性綁定處理程序觸發onproperty更改
我div
元素像下面,
<div id="test">Test</div>
,並像下面的處理函數,
function onPropChange() {
alert('Property changed for ' + window.event.srcElement.nodeName +
' event ' + window.event.type);
}
現在試圖像下面的處理程序綁定,
document.getElementById('test').onpropertychange = onPropChange;
在綁定,這觸發'propertychange'事件,因此處理程序被執行。
DEMO:http://jsfiddle.net/EEGcz/4/
有誰知道爲什麼嗎? 我使用IE8
細跟的attachEvent同樣的工作 - http://jsfiddle.net/maeRg/
那麼......你正在改變一個屬性,爲什麼不呢?我猜這個任務是立即發生的,但事件只會在事件循環的下一個滴答聲中觸發(當您的處理程序已經綁定時)。 – bfavaretto
@bfavaretto如果情況是這樣的話,那麼'attachEvent'的權利應該會發生同樣的情況。 –
不,「obj.attachEvent」是一個函數調用。使用'obj.onpropertychange = ...',你直接改變了一個屬性。 – bfavaretto