Как установить событие onmousedown для динамически создаваемого div в IE?
У меня есть (javascript) инструмент, который динамически создает div, когда пользователь нажимает на экран.
_newDiv = document.createElement('div');
Теперь, после создания _newDiv, я хочу назначить ему событие onmousedown.
_newDiv.onmousedown = function(event) { onNewDivMouseDown(event); };
Это отлично работает в Firefox, но не работает в IE 8. Есть ли какой-нибудь хак, который я могу использовать, чтобы решить эту проблему?
Спасибо!
2 ответа
Задача решена!
Оказывается, из-за того, что динамически созданный div был сделан прозрачным с помощью progid:DXImageTransform, IE не захватил событие onmousedown для указанного div. Проблема была решена путем вставки
background-image:url(/none)
в таблице стилей div. По какой-то причине это работает, даже если вставлено несуществующее изображение, поэтому я использовал это.
До IE9, event
объект не был передан обработчику. Вместо этого это глобальная переменная. Поэтому традиционная идиома:
function handler(event) {
event = event || window.event;
// ...
}
Итак, в вашем случае:
_newDiv.onmousedown = function(event) {
onNewDivMouseDown(event || window.event);
};