我有一些代码通过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中不起作用,或者有关于如何编写此代码以便它可以工作的建议?
感谢。
答案 0 :(得分:4)
您可以尝试避免使用setAttribute,只需执行
newButton.onclick = function(){ askQuestion(); };
答案 1 :(得分:0)
那将在firefox中运行,IE稍有不同试试
newButton.onclick = function() {askQuestion();};
OR
newButton.onclick = new Function('askQuestion()');
这应该有效,因为我已经开始工作了。如果STILL没有这样做,那么YUI有一个事件框架,你可以在其中执行此操作
YAHOO.util.Event.addListener(newButton,'click',askQuestion);
有关更多示例,请参阅http://developer.yahoo.com/yui/examples/event/eventsimple.html。
答案 2 :(得分:0)
如果你可以使用jQuery,请使用它。这不仅可以让您更轻松地操作DOM,还可以让您简单地说$('#myNewButton').click(function(){//hey});
并确保它有效。