-1

我这辈子都想不通。

我已经动态创建了一个元素,我需要向它添加一个点击事件,尽管它需要在所有浏览器中工作,直到 ie7。

var bottle = document.createElement('a');
bottle.id = 'target';
bottle.onclick = function(){makeClickable();};
//bottle.setAttribute('onclick', 'makeClickable();');
bottle.setAttribute('title', 'Lavender');
bottle.setAttribute('class', 'lavenderButton');
bottle.setAttribute('style', '**MY STYLES**');
bottle.innerHTML = "<div class='button pulse lavenderBottleImg'><img width='100%' src='**SOURCE**' class='indicator'></div>";
document.body.appendChild(bottle);

这是一个 JSFiddle。稍作修改:makeClickable()定义为向 JavaScript 控制台输出消息,将 div 内的图像元素替换为文本。

onclick 有效,但在 Firefox 中无效!如何让 onclick 在所有浏览器中工作?

注释掉的选项在 IE7 中不起作用(重要的是它在那里起作用!)并且添加事件侦听器也不起作用。

呸!这样做的正确方法是什么?

4

1 回答 1

2

onclick活动可以正常工作。我刚刚运行它,使用alert()而不是makeClickable(). 这表明问题不在于您对click事件进行编码的方式,而在于makeClickable().

证明

于 2013-05-15T23:18:14.233 回答