IE динамически добавленная кнопка не вызывается при нажатии - PullRequest
2 голосов
/ 21 августа 2009

У меня есть код, который динамически создает новую кнопку через JavaScript, которая при нажатии вызывает функцию JavaScript. Код работает так же, как и ожидалось в Firefox, Chrome, Opera, но низкий, и вот, он не работает в IE (7 - я даже не собираюсь беспокоиться о IE6).

Кнопка создается и появляется, но не вызывает событие onclick.

var newButton = document.createElement('input');
newButton.setAttribute('id','btnChat_');
newButton.setAttribute('type','button');
newButton.setAttribute('onclick','askQuestion()');
newButton.setAttribute('value', 'Respond');
document.getElementById('frmChat').appendChild(newButton);

Кто-нибудь знает, почему это не будет работать в IE, или у вас есть предложения относительно того, как я мог бы написать этот код, чтобы он работал?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 21 августа 2009

Вы можете попытаться избежать использования setAttribute и просто сделать

newButton.onclick = function(){ askQuestion(); };
0 голосов
/ 21 августа 2009

Если вы можете использовать jQuery, используйте его. Это не только облегчит манипулирование DOM, но и просто скажет $('#myNewButton').click(function(){//hey});

и убедитесь, что оно работает.

JQuery .

0 голосов
/ 21 августа 2009

Это будет работать в Firefox, IE немного отличается, попробуйте

newButton.onclick = function() {askQuestion();};

ИЛИ

newButton.onclick = new Function('askQuestion()');

Это должно сработать, так как я заставил его работать. Если этот STILL этого не делает, тогда у YUI есть структура событий, в которой вы бы сделали это

YAHOO.util.Event.addListener(newButton,'click',askQuestion);

См. http://developer.yahoo.com/yui/examples/event/eventsimple.html для дополнительных примеров.

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