动态生成的onclick不是由IE7处理的

时间:2011-11-15 21:36:33

标签: html internet-explorer-7 onclick mootools

我有以下情况:我想用javascript动态创建一个对象,它有一个onclick函数。我在我的HTML中的某处插入了这个元素,希望能够捕获onclick函数。

var newElement= new Element('li', { 'id' : 'Foo', 'onclick' : 'Bar();'} )
$("randomElement").grab(newElement, 'top');

我测试了这个,它可以正常工作:firefox,opera,chrome,Internet Explorer 8及以上版本。我的问题在于Internet Explorer 7,它根本不处理事件 虽然可以选择放弃对IE7的支持,但我仍然希望尽可能多地支持浏览器。 这个问题有解决方案或解决方法吗?

1 个答案:

答案 0 :(得分:2)

通过将“Bar()”字符串分配给eval属性,而不是实际添加事件,您似乎尝试执行某种onclick。如果你想直接传递一个事件,你必须使用camelCase,因此它应该是onClick而不是onclick小心,如果你只是做了那个改变就行不通,解释如下:

您可以尝试使用以下内容重写元素创建吗?

var newElement = new Element('li', { 
    id: 'Foo', 
    events: {
        click: function() { Bar(); }
    }
})

这实际上是在MooTools中使用事件实例化元素的首选方法,并通过显式调用Bar函数作为点击回调的一部分来避免隐式eval。