Разница между element.event и element.setAttribute (событие, обработчик) - PullRequest
0 голосов
/ 15 марта 2011

Для динамически создаваемых элементов я заметил, что element.setAttribute (onClick, myFunction) не работает должным образом в IE, тогда как element.onclick = myFunction работает во всех браузерах.Существуют ли функциональные отличия, кроме этой разницы в браузере?

1 Ответ

2 голосов
/ 15 марта 2011

Теоретически, setAttribute берет строку и присваивает ее атрибуту, а затем сопоставляется со всеми связанными свойствами DOM.В IE 7 и ниже (а также в IE 8 в режиме совместимости IE 7 и в режиме Quirks) оно присваивает значение непосредственно свойству DOM с тем же именем (делая его чувствительным к регистру и бесполезным, когда свойство ожидает что-то отличное от строкизначение).

Ряд свойств DOM onfoo принимает функцию.

Обычно вместо этого обычно рекомендуется использовать attachEventListener и friends, а также использовать слой абстракции (например, предоставленный YUI, jQueryи т. д.) для присвоения значений.Это вообще проще.Такие библиотеки, как правило, также включают функции для устранения ошибок, связанных с утечкой памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...