[英]IE: onproperty change triggered when binding the handler by DOM element properties
這個問題是出於好奇。 我正在開發一個插件並在為其創建演示頁面時遇到了這個問題。
我有如下所示的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' 事件,從而執行處理程序。
演示: http : //jsfiddle.net/EEGcz/4/
有誰知道為什么? 我正在使用 IE8
同樣適用於 attachEvent - http://jsfiddle.net/maeRg/
查看 event.propertyName,您可以看到您的 className 是第二個示例中已更改的屬性,但第一個示例通過使用 test.onpropertychange 而不是 attachEvent 附加到它的行為來觸發事件。 所以在第一個例子中,propertyName 是“onpropertychange”。
試試這個修改,看看第一種類型的事件綁定實際上是如何觸發事件本身的。
var i = 1;
function onPropertyChange() {
alert('Property changed called ' + i++ + ' for ' + (window.event.propertyName));
}
var test = document.getElementById('test');
// play with commenting and uncommenting out the following two lines
//test.onpropertychange = onPropertyChange;
test.attachEvent("onpropertychange", onPropertyChange);
test.className = 'test2';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.